.ab-page{--ab-ink:#000;--ab-gray-50:#f9fafb;--ab-gray-100:#f3f4f6;--ab-gray-300:#d1d5db;--ab-gray-500:#6b7280;--ab-gray-600:#4b5563;--ab-gray-700:#374151;--ab-line:#e5e7eb;--ab-ring:rgba(17,24,39,0.06);--ab-focus:#111827;--ab-primary:#0677a7;--ab-primary-hover:#0b7eb0;--ab-link:#1774b5;--ab-accent:#047857;--ab-section:64px;color:var(--ab-ink)}@media (min-width:641px){.ab-page{--ab-section:80px}}@media (min-width:1025px){.ab-page{--ab-section:112px}}#experience{scroll-margin-top:24px}.ab-section{margin-top:var(--ab-section)}.ab-eyebrow{font-size:13px;line-height:20px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ab-accent)}.ab-h1{margin-top:8px;font-size:36px;line-height:1.08;font-weight:700;letter-spacing:-.035em;text-wrap:balance}@media (min-width:641px){.ab-h1{font-size:48px}}@media (min-width:1025px){.ab-h1{font-size:56px}}.ab-h2{font-size:28px;line-height:36px;font-weight:700;letter-spacing:-.025em;text-wrap:balance}@media (min-width:641px){.ab-h2{font-size:30px;line-height:38px}}@media (min-width:1025px){.ab-h2{font-size:32px;line-height:40px}}.ab-h3{font-size:20px;line-height:28px;font-weight:700;letter-spacing:-.015em}.ab-body{margin-top:8px;font-size:16px;line-height:26px}.ab-body,.ab-lead{color:var(--ab-gray-600);text-wrap:pretty}.ab-lead{margin-top:20px;max-width:38rem;font-size:18px;line-height:28px}@media (min-width:1025px){.ab-lead{font-size:20px;line-height:32px}}.ab-ic{width:18px;height:18px;flex:none}.ab-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:28px}.ab-actions--center,.ab-btn{justify-content:center}.ab-btn{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:12px 24px;border-radius:999px;font-size:16px;line-height:24px;font-weight:500;-webkit-tap-highlight-color:transparent}.ab-btn--primary{background:var(--ab-primary);color:#fff}.ab-btn--primary:hover{background:var(--ab-primary-hover)}.ab-btn--quiet{color:var(--ab-ink);box-shadow:inset 0 0 0 1px var(--ab-gray-300);background:#fff}.ab-btn--quiet:hover{box-shadow:inset 0 0 0 1px var(--ab-line),0 2px 8px rgba(17,24,39,.08)}.ab-btn--soft{background:var(--ab-gray-100);color:var(--ab-ink)}.ab-btn--soft:hover{background:var(--ab-gray-50);box-shadow:inset 0 0 0 1px var(--ab-line)}.ab-btn:focus-visible{outline:2px solid var(--ab-primary);outline-offset:3px}.ab-btn--quiet:focus-visible,.ab-btn--soft:focus-visible{outline-color:var(--ab-focus)}.ab-textlink{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-size:15px;line-height:26px;font-weight:500;color:var(--ab-link);border-radius:4px;text-underline-offset:3px}.ab-textlink .ab-ic{width:16px;height:16px}.ab-textlink:hover{text-decoration:underline}.ab-textlink:focus-visible{outline:2px solid var(--ab-focus);outline-offset:3px}@media (prefers-reduced-motion:no-preference){.ab-btn{transition:background-color .15s var(--ease-smooth-out),box-shadow .15s var(--ease-smooth-out)}.ab-textlink .ab-ic{transition:transform .2s var(--ease-smooth-out)}.ab-textlink:hover .ab-ic{transform:translateX(2px)}}.ab-intro{padding-top:24px}.ab-intro__grid{display:grid;gap:40px}.ab-facts{margin-top:32px;padding-top:20px;border-top:1px solid var(--ab-line);display:grid;gap:10px;max-width:38rem}.ab-facts__row{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px}.ab-facts dt{font-size:13px;line-height:24px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ab-gray-500)}.ab-facts dd{font-size:16px;line-height:24px;color:var(--ab-gray-700);text-wrap:pretty}.ab-portrait{margin:0;max-width:480px}.ab-portrait__frame{aspect-ratio:424/380;overflow:hidden;border-radius:20px;background:var(--ab-gray-100);box-shadow:0 0 0 1px var(--ab-ring)}.ab-portrait__frame img{display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:50% 100%;object-position:50% 100%}.ab-portrait figcaption{margin-top:10px;font-size:14px;line-height:20px;color:var(--ab-gray-500)}@media (max-width:640px){.ab-portrait{max-width:none}.ab-portrait__frame{border-radius:16px}.ab-actions .ab-btn{flex:1 1 100%}}@media (min-width:641px){.ab-intro{padding-top:40px}.ab-intro__grid{grid-template-columns:minmax(0,1fr) clamp(280px,38%,400px);gap:40px;align-items:start}.ab-portrait{margin-top:32px}}@media (min-width:1025px){.ab-intro{padding-top:56px}.ab-intro__grid{grid-template-columns:minmax(0,1fr) 400px;gap:96px;align-items:center}.ab-portrait{margin-top:0}}@media (min-width:1280px){.ab-intro__grid{grid-template-columns:minmax(0,1fr) clamp(400px,36%,480px);align-items:stretch}.ab-portrait{display:flex;flex-direction:column}.ab-portrait__frame{position:relative;flex:1 1 0;aspect-ratio:auto;min-height:320px}.ab-portrait__frame img{position:absolute;inset:0}}.ab-quotes{display:grid;gap:40px;margin-top:32px}.ab-quote{display:flex;flex-direction:column;height:100%;margin:0;padding-top:24px;border-top:1px solid var(--ab-line)}.ab-quote__mark{display:block;height:36px;font-family:Georgia,Times New Roman,serif;font-size:64px;line-height:1;color:var(--ab-q)}.ab-quotes>li{--ab-q:var(--ab-accent)}.ab-quotes>li:nth-child(3n+2){--ab-q:#0677a7}.ab-quotes>li:nth-child(3n+3){--ab-q:#d600b6}.ab-quote blockquote{margin:0}.ab-quote blockquote p{font-size:22px;line-height:30px;font-weight:600;letter-spacing:-.015em;color:var(--ab-ink);text-wrap:balance}.ab-quote figcaption{margin-top:16px;font-size:15px;line-height:22px}.ab-quote__name{display:block;font-weight:600;color:var(--ab-ink)}.ab-quote__role{display:block;color:var(--ab-gray-600)}@media (min-width:1025px){.ab-quotes{grid-template-columns:repeat(3,minmax(0,1fr));gap:48px}.ab-quote figcaption{margin-top:auto;padding-top:24px}.ab-quote blockquote p{font-size:24px;line-height:32px}}.ab-exp__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px 32px}.ab-exp__note{margin-top:8px;font-size:16px;line-height:26px;color:var(--ab-gray-600)}.ab-jobs{margin-top:24px;border-top:1px solid var(--ab-line)}.ab-job{padding:16px 0;border-bottom:1px solid var(--ab-line)}.ab-job__co{font-size:17px;line-height:26px;font-weight:700;letter-spacing:-.01em;text-wrap:balance}.ab-job__roles{margin-top:4px;display:grid;gap:2px;gap:6px}.ab-job__roles li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:0 16px}.ab-job__title{text-wrap:pretty;font-size:16px;line-height:24px;color:var(--ab-gray-700)}.ab-job__yrs{font-size:14px;line-height:24px;font-weight:500;color:var(--ab-gray-500);font-variant-numeric:tabular-nums;white-space:nowrap}@media (max-width:640px){.ab-exp__head .ab-btn{flex:1 1 100%}}@media (min-width:641px){.ab-jobs{margin-top:32px}.ab-job{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:4px 32px;padding:20px 0}.ab-job__roles{margin-top:0}}@media (min-width:1025px){.ab-job{gap:4px 96px}}.ab-how{display:grid;gap:32px;margin-top:24px}.ab-how__sub{margin-top:4px;font-size:16px;line-height:24px;font-weight:600;color:var(--ab-gray-700)}.ab-skills-h{margin-top:48px}.ab-skills{display:grid;gap:0 24px;margin-top:12px}.ab-skills li{padding:16px 0;border-top:1px solid var(--ab-line)}.ab-skills h4{font-size:16px;line-height:24px;font-weight:600;color:var(--ab-ink);text-wrap:balance}.ab-skills p{margin-top:4px;font-size:15px;line-height:24px;color:var(--ab-gray-600);text-wrap:pretty}@media (min-width:641px){.ab-how{gap:40px}.ab-how,.ab-skills{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1025px){.ab-how{gap:96px;margin-top:32px}.ab-skills{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 48px}.ab-skills li{padding:20px 0 24px}.ab-body{font-size:17px;line-height:28px}}.ab-clients{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:24px}.ab-clients li{display:flex;align-items:center;justify-content:center;aspect-ratio:3/2;padding:12px;border-radius:12px;background:var(--ab-gray-50)}.ab-clients img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;opacity:.7}.ab-clients__name{font-size:14px;font-weight:500;color:var(--ab-gray-700);text-align:center}@media (min-width:641px){.ab-clients{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}}@media (min-width:1025px){.ab-clients{gap:24px}.ab-clients li{aspect-ratio:2/1;padding:16px 24px}}.ab-off{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:24px}.ab-off>li{min-width:0}.ab-tile{position:relative;display:block;margin:0;aspect-ratio:4/5;overflow:hidden;border-radius:12px;background:var(--ab-gray-100);box-shadow:0 0 0 1px var(--ab-ring)}.ab-tile img{display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.ab-off>li:first-child .ab-tile img{-o-object-position:50% 62%;object-position:50% 62%}.ab-tile__pill{position:absolute;left:12px;bottom:12px;padding:4px 12px;border-radius:999px;background:rgba(255,255,255,.92);font-size:14px;line-height:20px;font-weight:500;color:var(--ab-ink)}.ab-tile--more:after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.55);transition:background var(--duration-quick) var(--ease-smooth-out)}.ab-tile--more:hover:after{background:rgba(0,0,0,.48)}.ab-tile--more:focus-visible{outline:2px solid var(--ab-focus);outline-offset:3px}.ab-tile__more{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:16px;text-align:center;font-size:20px;line-height:26px;font-weight:700;color:#fff}.ab-tile__more .ab-nowrap{white-space:nowrap}.ab-tile__more .ab-ic{display:inline-block;width:18px;height:18px;margin-left:6px;vertical-align:-2px}.ab-tile--more:hover .ab-tile__more{text-decoration:underline;text-underline-offset:4px}@media (max-width:640px){.ab-tile__pill{left:8px;bottom:8px;padding:2px 10px;font-size:13px}.ab-tile--more:after,.ab-tile--more:hover:after{background:rgba(0,0,0,.2)}.ab-tile__more-long{display:none}.ab-tile__more-short{display:inline-flex;align-items:center;gap:4px}.ab-tile__more-short .ab-ic{width:14px;height:14px;margin:0;vertical-align:0}.ab-tile--more:hover .ab-tile__more{text-decoration:none}}@media (min-width:641px){.ab-tile__more-short{display:none}.ab-off{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:1025px){.ab-off{gap:16px}.ab-tile__pill{left:16px;bottom:16px}}.ab-closing{margin-bottom:64px}.ab-closing__box{padding:40px 16px;border-radius:16px;background:var(--ab-gray-50);text-align:center}.ab-closing__p{max-width:36rem;margin:8px auto 0;font-size:16px;line-height:26px;color:var(--ab-gray-600);text-wrap:balance}.ab-closing .ab-actions{margin-top:24px}@media (min-width:641px){.ab-closing__box{padding:56px 24px}}@media (min-width:1025px){.ab-closing{margin-bottom:96px}}