.exp-page{--exp-rule: #e3e3de;--xp-line: var(--exp-rule);--exp-tint: #fff7dc;--exp-ease: cubic-bezier(.16, .84, .24, 1);--exp-year: 120px;--exp-axis: 64px;max-width:var(--max);margin:0 auto;padding:clamp(40px,8vh,96px) var(--gutter) clamp(72px,10vh,128px)}.exp-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.exp-intro{display:grid;gap:20px;max-width:48rem}.exp-intro__title{margin:0}.exp-intro__lede{margin:0;max-width:36em;font-size:clamp(1.1875rem,1rem + .5vw,1.4375rem);line-height:1.45}.exp-intro__actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;margin-top:8px}.exp-section-head{display:grid;gap:12px;max-width:44rem;margin-bottom:clamp(28px,5vh,48px)}.exp-section-head__title{margin:0;font-size:clamp(2.25rem,4.4vw,3.75rem);font-weight:820;font-stretch:68%;line-height:.95}.exp-section-head__intro{margin:0;color:var(--muted);max-width:36em}.exp-career,.exp-freelance,.exp-education{margin-top:clamp(64px,11vh,128px)}.exp-freelance,.exp-education{padding-top:clamp(40px,6vh,64px);border-top:2px solid var(--ink)}.exp-chart__lanes,.exp-chart__scale{display:none}.exp-chart__list{display:grid;gap:12px;margin:0;padding:0;list-style:none}.exp-block{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:3px;width:100%;margin:0;padding:16px 18px;border:2px solid var(--ink);border-radius:var(--r-md, 10px);background:var(--paper);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:background-color .18s ease-out,color .18s ease-out}.exp-block>span,.exp-block__earlier>span{display:block}.exp-block__org{font-size:1.625rem;font-weight:820;font-stretch:72%;line-height:1}.exp-block__role{font-size:1rem;font-weight:650;line-height:1.25}.exp-block__dates{color:var(--muted);font-size:.9375rem;font-variant-numeric:tabular-nums;line-height:1.3}.exp-block__lane{order:-1;margin-bottom:6px;padding:3px 10px;border:1px solid var(--exp-rule);border-radius:999px;background:var(--paper);color:var(--ink);font-size:.8125rem;font-weight:650}.exp-block__earlier{display:flex;flex-direction:column;gap:3px;align-self:stretch;margin-top:18px;padding-top:18px;border-top:3px solid var(--gold);position:relative}.exp-block__earlier .exp-block__role{color:var(--muted)}.exp-block__promo{position:absolute;top:-13px;left:0;padding:2px 10px;border-radius:999px;background:var(--gold);color:var(--ink);font-size:.8125rem;font-weight:700;line-height:1.5}@media(hover:hover){.exp-block:hover{background:var(--exp-tint)}}.exp-block[aria-expanded=true]{background:var(--ink);color:var(--paper)}.exp-block[aria-expanded=true] .exp-block__dates,.exp-block[aria-expanded=true] .exp-block__earlier .exp-block__role{color:#c9cad4}.exp-block:focus-visible{outline:3px solid var(--blue);outline-offset:3px}@media(min-width:768px){.exp-chart{display:grid;grid-template-columns:var(--exp-axis) minmax(0,1.35fr) minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto calc(var(--exp-span) * var(--exp-year));column-gap:clamp(12px,1.6vw,24px)}.exp-chart__lanes{display:contents}.exp-chart__lane{grid-row:1;align-self:end;margin-bottom:18px;padding-bottom:10px;border-bottom:2px solid var(--ink);font-size:1.0625rem;font-weight:750}.exp-chart__lane--work{grid-column:2}.exp-chart__lane--contract{grid-column:3}.exp-chart__lane--own{grid-column:4}.exp-chart__scale{display:block;position:relative;grid-row:2;grid-column:1 / -1}.exp-chart__tick{position:absolute;left:0;right:0;top:calc(var(--at) * var(--exp-year));border-top:1px solid var(--exp-rule)}.exp-chart__tick>span{position:absolute;left:0;bottom:6px;color:var(--muted);font-size:.9375rem;font-weight:650;font-stretch:85%;font-variant-numeric:tabular-nums;line-height:1}.exp-chart__tick--now{border-top:2px solid var(--ink)}.exp-chart__tick--now>span{top:8px;bottom:auto;color:var(--ink);font-weight:800}.exp-chart__tick--base{border-top-color:var(--ink)}.exp-chart__list{grid-row:2;grid-column:2 / -1;display:grid;grid-template-columns:subgrid;grid-template-rows:100%;gap:0 normal;position:relative}.exp-chart__item{grid-row:1;align-self:start;margin-top:calc(var(--top) * var(--exp-year) + 3px);height:max(calc(var(--len) * var(--exp-year) - 6px),38px)}.exp-chart__item--work{grid-column:1}.exp-chart__item--contract{grid-column:2}.exp-chart__item--own{grid-column:3}.exp-block{height:100%;padding:10px 14px;overflow:hidden}.exp-block__org{font-size:clamp(1.25rem,1.8vw,1.625rem)}.exp-block__role{font-size:.9375rem}.exp-block__dates{font-size:.875rem}.exp-block__lane{position:absolute;width:1px;height:1px;margin:0;padding:0;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.exp-block__earlier{position:absolute;left:0;right:0;bottom:0;height:calc(var(--promo) * var(--exp-year) - 3px);margin:0;padding:14px 14px 10px}.exp-block__promo{left:12px}.is-short .exp-block{flex-direction:row;flex-wrap:nowrap;align-items:baseline;column-gap:10px;padding:7px 12px}.is-short .exp-block__org{flex:none}.is-short .exp-block__dates{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.is-short .exp-block__org{font-size:1.125rem}.is-short .exp-block__role{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}}@media(min-width:768px)and (max-width:1023px){.exp-page{--exp-year: 170px}.exp-chart__item.is-short{height:max(calc(var(--len) * var(--exp-year) - 6px),58px)}.is-short .exp-block{flex-wrap:wrap;align-content:center}.is-short .exp-block__dates{white-space:normal}}@media(min-width:1024px){.exp-page{--exp-axis: 72px}}@media(min-width:768px)and (prefers-reduced-motion:no-preference){.exp-chart__tick{animation:exp-fade .6s var(--exp-ease) backwards}.exp-block{animation:exp-draw .75s var(--exp-ease) backwards;animation-delay:calc(.25s + var(--draw) * .15s)}.exp-block__promo{animation:exp-fade .4s var(--exp-ease) backwards;animation-delay:calc(1s + var(--draw) * .15s)}}@keyframes exp-draw{0%{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}@keyframes exp-fade{0%{opacity:0}to{opacity:1}}.exp-panels{margin-top:clamp(40px,7vh,72px)}.exp-panels__empty{margin:0;padding-top:24px;border-top:2px solid var(--ink);color:var(--muted)}.exp-panel{padding-top:clamp(28px,4vh,40px);border-top:2px solid var(--ink);scroll-margin-top:var(--nav-clear)}.exp-panel+.exp-panel{margin-top:clamp(48px,8vh,80px)}.exp-js .exp-panel:not(.is-open){display:none}.exp-js .exp-panel+.exp-panel{margin-top:0}.exp-panel__head{display:flex;align-items:center;gap:16px}.exp-panel__who{min-width:0}.exp-panel__org{margin:0;font-size:clamp(2rem,3.6vw,3.25rem);font-weight:820;font-stretch:70%;line-height:1}.exp-panel__org:focus{outline:none}.exp-panel__org:focus-visible{outline:3px solid var(--blue);outline-offset:4px;border-radius:4px}.exp-panel__client{font-weight:600;color:var(--muted)}.exp-panel__place{margin:6px 0 0;color:var(--muted);font-size:1.0625rem}.exp-panel__close{align-self:flex-start;flex:none;margin-left:auto;min-height:44px;padding:0 18px;border:2px solid var(--ink);border-radius:999px;background:var(--paper);color:var(--ink);font:inherit;font-size:1rem;font-weight:650;cursor:pointer}.exp-panel__close:hover{background:var(--exp-tint)}@media(max-width:767px){.exp-panel__head{flex-wrap:wrap;row-gap:14px}.exp-panel__who{order:3;flex-basis:100%}}.exp-panel__grid{display:grid;gap:28px;margin-top:clamp(24px,4vh,36px)}@media(min-width:1024px){.exp-panel__grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(40px,5vw,80px)}}.exp-panel__side{display:grid;gap:28px;align-content:start}.exp-panel__main{display:grid;gap:20px;align-content:start}.exp-roles{display:grid;gap:10px;margin:0;padding:0;list-style:none}.exp-roles li{display:grid;gap:2px}.exp-roles__title{font-size:1.25rem;font-weight:700;line-height:1.25}.exp-roles li:not(:first-child) .exp-roles__title{color:var(--muted);font-weight:600}.exp-roles__dates{color:var(--muted);font-size:1rem;font-variant-numeric:tabular-nums}.exp-figures{display:grid;gap:22px;margin:0;padding:0;list-style:none}.exp-figures li{display:grid;gap:4px;padding-left:16px;border-left:4px solid var(--gold);border-radius:2px}.exp-figures__value{font-size:clamp(2rem,3.2vw,2.75rem);font-weight:820;font-stretch:70%;line-height:1;font-variant-numeric:tabular-nums}.exp-figures__from{color:var(--muted);font-weight:650;white-space:nowrap}.exp-figures__to{white-space:nowrap}.exp-figures__to:before{content:"→";margin:0 .25em;color:var(--muted);font-weight:500}.exp-figures__label{color:var(--muted);font-size:1rem;line-height:1.4}a.exp-figures__label{justify-self:start;color:var(--ink);text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:2px;text-underline-offset:3px}a.exp-figures__label:hover{text-decoration-color:var(--ink)}.exp-work{margin-top:clamp(32px,5vh,48px)}.exp-sub{margin:0 0 18px;font-size:1.375rem;font-weight:800;font-stretch:85%;line-height:1.2}.exp-review{display:grid;gap:14px;max-width:48em;margin:clamp(32px,5vh,48px) 0 0;padding-left:clamp(16px,2vw,28px);border-left:6px solid var(--gold);border-radius:3px}.exp-review__text{margin:0}.exp-review__text p{margin:0;font-size:clamp(1.1875rem,1.5vw,1.375rem);font-weight:600;font-stretch:92%;line-height:1.4;text-wrap:pretty}.exp-review__by{display:grid;gap:6px;color:var(--muted);font-size:.9375rem}.exp-review__by b{color:var(--ink);font-size:1.0625rem}.exp-degrees{margin:0;padding:0;list-style:none}.exp-degree{display:grid;gap:20px;padding:clamp(28px,4vh,40px) 0}.exp-degree+.exp-degree{border-top:1px solid var(--exp-rule)}.exp-degree:first-child{padding-top:0}.exp-degree__org{font-size:clamp(1.625rem,2.6vw,2.25rem)}.exp-degree__body{display:grid;gap:16px;align-content:start}.exp-degree .xp-logo{padding:0 6px}@media(min-width:1024px){.exp-degree{grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(40px,5vw,80px);align-items:start}.exp-degree .exp-panel__head{align-items:flex-start}}@media(prefers-reduced-motion:reduce){.exp-block,.exp-card__media{transition:none}.exp-card--link:hover .exp-card__media{transform:none}}.exp-v{--xp-line: #e3e3de;position:relative;display:grid;gap:clamp(64px,9vh,104px);margin:0;padding:0;list-style:none}.exp-v:before{content:"";position:absolute;top:10px;bottom:0;left:7px;width:2px;border-radius:2px;background:var(--xp-line)}.exp-v__item{position:relative;display:grid;gap:18px;padding-left:48px}.exp-v__node{position:absolute;top:6px;left:0;width:16px;height:16px;border:2px solid var(--ink);border-radius:50%;background:var(--paper)}.exp-v__item.is-ongoing .exp-v__node{background:var(--gold)}.exp-v__when{font-size:clamp(1.625rem,2.4vw,2.25rem);white-space:normal}.exp-v__content{display:grid;gap:32px;min-width:0}.exp-v__card .xp-points{gap:10px}.exp-v__card .xp-points li{line-height:1.5}@media(min-width:1024px){.exp-v__item{grid-template-columns:minmax(0,200px) minmax(0,1fr);column-gap:clamp(32px,3vw,56px)}.exp-v__when{grid-column:1}.exp-v__content{grid-column:2}.exp-v__card{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);grid-template-rows:auto auto auto auto 1fr auto;column-gap:clamp(24px,2.4vw,40px);row-gap:14px;align-content:start}.exp-v__card>*{grid-column:1}.exp-v__card>.xp-entry__head{grid-column:1 / -1}.exp-v__card>.xp-entry__notes{grid-column:2;grid-row:2 / 6}.exp-v__card>.xp-skills{grid-column:1 / -1;grid-row:6;margin-top:4px}}
