.ab{--ab-wide:76rem;padding:clamp(2rem, 6vw, 4.5rem) var(--space-gutter) clamp(4rem, 10vw, 7rem)}.ab-section{max-width:var(--ab-wide);margin-inline:auto;scroll-margin-top:2rem}.ab-section+.ab-section{margin-top:clamp(5rem,12vw,9rem)}.ab-label{color:var(--color-ink-soft);text-transform:uppercase;align-items:center;gap:.75rem;margin:0 0 1.25rem;display:flex}.ab-label span{color:var(--color-ink)}.ab-label:after{content:"";background:var(--color-line);width:3.5rem;height:1px}.ab-title{font-family:var(--font-display);margin:0 0 2.5rem;font-size:clamp(2.5rem,6vw,4.5rem);font-weight:400;line-height:1}.ab-section__lead{max-width:38rem;color:var(--color-ink-soft);margin:-1.5rem 0 2.5rem;line-height:1.6}.ab-intro__grid{align-items:start;gap:2.5rem;display:grid}@media (min-width:1024px){.ab-intro__grid:has(.ab-portrait){grid-template-columns:minmax(0,1fr) 22rem}}.ab-intro__title{max-width:18ch;font-family:var(--font-display);text-wrap:balance;margin:0 0 2rem;font-size:clamp(2.75rem,7vw,5.5rem);font-weight:400;line-height:1}.ab-intro__bio{max-width:40rem;color:var(--color-ink-soft);margin:0 0 1.1rem;font-size:clamp(1.05rem,1.6vw,1.2rem);line-height:1.65}.ab-intro__meta{color:var(--color-ink-faint);margin:1.75rem 0 0}.ab-portrait{aspect-ratio:4/5;background:var(--color-surface);border-radius:var(--radius-md);margin:0;position:relative;overflow:hidden}.ab-portrait img{object-fit:cover}.ab-actions{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:2rem;display:flex}.ab-stats{border-top:1px solid var(--color-line);grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:1.5rem;margin:3.5rem 0 0;padding-top:2rem;display:grid}.ab-stats div{flex-direction:column;gap:.4rem;display:flex}.ab-stats dd{font-family:var(--font-display);margin:0;font-size:clamp(2.5rem,5vw,3.5rem);line-height:1}.ab-stats dt{color:var(--color-ink-soft)}.ab-skills{gap:2.5rem;display:grid}@media (min-width:768px){.ab-skills{grid-template-columns:repeat(3,minmax(0,1fr))}}.ab-skills__group{border-top:1px solid var(--color-line);padding-top:1.25rem}.ab-skills__title{color:var(--color-ink-soft);text-transform:uppercase;margin:0 0 1rem;font-weight:400}.ab-skills__list{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.ab-skills__list li{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-sm);padding:.4rem .75rem;font-size:.95rem}.setup__photo{aspect-ratio:16/9;background:var(--color-surface);border-radius:var(--radius-md);margin:0 0 2.5rem;position:relative;overflow:hidden}.setup__photo img{object-fit:cover}.setup__stats{flex-wrap:wrap;gap:1.5rem 3rem;margin:0 0 3rem;display:flex}.setup__stats div{flex-direction:column;gap:.35rem;display:flex}.setup__stats dd{font-family:var(--font-display);color:var(--color-discipline-engineering);margin:0;font-size:clamp(3rem,7vw,5rem);line-height:.9}.setup__stats dt{color:var(--color-ink-soft)}.setup__groups{gap:2.5rem 3rem;display:grid}@media (min-width:768px){.setup__groups{grid-template-columns:repeat(2,minmax(0,1fr))}}.setup__group{border-top:1px solid var(--color-line);padding-top:1.25rem}.setup__title{color:var(--color-ink-soft);text-transform:uppercase;margin:0 0 1.25rem;font-weight:400}.setup__list{gap:1.25rem;margin:0;padding:0;list-style:none;display:grid}.setup__name{margin:0;font-weight:600}.setup__detail{max-width:34rem;color:var(--color-ink-soft);margin:.3rem 0 0;line-height:1.6}.xp{--xp-x:calc(.45rem + 14px);--xp-pad:calc(2.25rem + 14px);--xp-dot-y:.6rem;--xp-active:var(--color-discipline-engineering);padding-left:var(--xp-pad);overflow-clip-margin:1rem;view-timeline:--xp block;position:relative;overflow:visible clip}.xp:before,.xp__trail{content:"";left:var(--xp-x);top:var(--xp-dot-y);bottom:var(--xp-dot-y);background:var(--color-line);width:1px;position:absolute}.xp__trail{background:linear-gradient(var(--color-discipline-design), var(--color-discipline-engineering));transform-origin:top;display:none;transform:scaleY(0)}.xp__runner{left:calc(var(--xp-x) - 5px);top:var(--xp-dot-y);bottom:var(--xp-dot-y);pointer-events:none;width:11px;display:none;position:absolute}.xp__runner:before{content:"";background:var(--xp-active);width:11px;height:11px;box-shadow:0 0 14px color-mix(in srgb, var(--xp-active) 85%, transparent), 0 0 0 4px color-mix(in srgb, var(--xp-active) 20%, transparent);border-radius:50%;position:absolute;top:-5.5px;left:0}.xp__list{margin:0;padding:0;list-style:none}.xp__item{padding-bottom:3rem;position:relative}.xp__item:last-child{padding-bottom:0}.xp__item:before,.xp__item:after{content:"";left:calc(var(--xp-x) - var(--xp-pad) - 4.5px);top:calc(var(--xp-dot-y) - 4.5px);background:var(--color-ink-faint);width:9px;height:9px;box-shadow:0 0 0 2px var(--color-bg);border-radius:50%;position:absolute}.xp__item:after{background:var(--color-discipline-design);opacity:0}.xp__item[data-current]:before{background:var(--xp-active);box-shadow:0 0 0 2px var(--color-bg), 0 0 0 6px color-mix(in srgb, var(--xp-active) 22%, transparent)}.xp__head{flex-wrap:wrap;align-items:baseline;gap:.4rem .9rem;display:flex}.xp__role{margin:0;font-size:1.15rem;font-weight:600}.xp__dates{color:var(--color-ink-faint)}.xp__tag{color:var(--color-ink-soft);text-transform:uppercase;border:1px solid var(--color-line);border-radius:999px;padding:.15rem .55rem;font-size:.7rem}.xp__company{color:var(--color-ink-soft);margin:.3rem 0 0}.xp__company a{color:inherit}.xp__summary{max-width:44rem;color:var(--color-ink-soft);border-left:2px solid var(--color-line);margin:.9rem 0 0;padding-left:.9rem;line-height:1.7}.xp__link{color:var(--color-discipline-design);gap:.4rem;margin:.9rem 0 0 .9rem;text-decoration:none;display:inline-flex}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.xp__trail,.xp__runner{animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--xp;animation-range:cover 50vh cover calc(100% - 50vh);display:block}.xp__trail{animation-name:xp-fill}.xp__runner{animation-name:xp-run}.xp__item:after{animation:linear both xp-pass;animation-timeline:view();animation-range:cover calc(50vh + var(--xp-dot-y)) cover calc(50vh + var(--xp-dot-y) + 1px)}}}@keyframes xp-fill{to{transform:scaleY(1)}}@keyframes xp-run{0%{transform:translateY(0)}to{transform:translateY(100%)}}@keyframes xp-pass{0%{opacity:0}to{opacity:1}}.gh{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-md);margin:0;padding:clamp(1.25rem,3vw,2rem)}.gh__body{gap:1.75rem;display:grid}@media (min-width:768px){.gh[data-compact] .gh__body{grid-template-columns:minmax(0,1fr) auto;align-items:stretch}.gh[data-compact] .gh__stats{flex-direction:column;justify-content:space-between;margin:0}}.gh[data-compact] .gh__chart{min-width:0;width:calc(var(--weeks) * (2.25rem + var(--gap)));max-width:100%}.gh__stats{flex-wrap:wrap;gap:1.25rem 2.5rem;margin:0 0 1.75rem;display:flex}.gh__stats div{flex-direction:column-reverse;gap:.3rem;display:flex}.gh__stats dd{font-family:var(--font-display);margin:0;font-size:clamp(2rem,4vw,2.75rem);line-height:1}.gh__stats dt{color:var(--color-ink-soft)}.gh__scroll{padding-bottom:.25rem;overflow-x:auto}.gh__chart{--gap:3px;min-width:calc(var(--weeks) * (9px + var(--gap)))}.gh__months,.gh__grid{grid-template-columns:repeat(var(--weeks), minmax(0, 1fr));gap:var(--gap);display:grid}.gh__months{color:var(--color-ink-soft);margin-bottom:.5rem;font-size:.7rem}.gh__months span{white-space:nowrap}.gh__grid{grid-template-rows:repeat(7,auto);grid-auto-flow:column}.gh__cell{aspect-ratio:1;background:var(--color-line);border-radius:2px;display:block}.gh__cell[data-level="1"]{background:color-mix(in oklab, var(--color-discipline-engineering) 32%, var(--color-surface))}.gh__cell[data-level="2"]{background:color-mix(in oklab, var(--color-discipline-engineering) 55%, var(--color-surface))}.gh__cell[data-level="3"]{background:color-mix(in oklab, var(--color-discipline-engineering) 78%, var(--color-surface))}.gh__cell[data-level="4"]{background:var(--color-discipline-engineering)}.gh__caption{color:var(--color-ink-soft);flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:1.25rem;font-size:.75rem;display:flex}.gh__caption a{color:var(--color-ink)}.gh__legend{align-items:center;gap:4px;display:inline-flex}.gh__legend .gh__cell{width:.65rem}.ab-contact__title{max-width:16ch;font-family:var(--font-display);text-wrap:balance;margin:0 0 2.5rem;font-size:clamp(3rem,8vw,6.5rem);font-weight:400;line-height:.98}.ab-contact .ab-section__lead{margin-top:-1rem}.ab-contact__email{font-family:var(--font-display);color:var(--color-ink);text-underline-offset:.15em;text-decoration:underline;text-decoration-thickness:.04em;-webkit-text-decoration-color:var(--color-discipline-design);text-decoration-color:var(--color-discipline-design);font-size:clamp(1.75rem,4.5vw,3rem);display:inline-block}:is(body:has(.ab-contact) .site-footer__cta,body:has(.ab-contact) .site-footer__list){display:none}body:has(.ab-contact) .site-footer{padding-top:3rem}
