.cv-head[data-astro-cid-lhve4llt]{padding:80px 0 56px;border-bottom:1px solid var(--ink)}.cv-head-grid[data-astro-cid-lhve4llt]{display:grid;grid-template-columns:1fr 280px;gap:64px;align-items:start}.cv-head[data-astro-cid-lhve4llt] .label[data-astro-cid-lhve4llt]{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--citation)}.cv-head[data-astro-cid-lhve4llt] h1[data-astro-cid-lhve4llt]{font-family:var(--serif);font-weight:500;font-size:clamp(56px,9vw,124px);letter-spacing:-.032em;line-height:.94;margin:18px 0 0;font-variation-settings:"opsz" 144,"SOFT" 70}.cv-head[data-astro-cid-lhve4llt] h1[data-astro-cid-lhve4llt] em[data-astro-cid-lhve4llt]{font-style:italic;color:var(--citation);font-weight:400;display:block;font-size:.42em;margin-top:14px;letter-spacing:-.014em}.cv-head[data-astro-cid-lhve4llt] .role[data-astro-cid-lhve4llt]{font-family:var(--serif);font-style:italic;font-size:clamp(19px,2.4vw,22px);line-height:1.4;color:var(--ink-soft);margin:24px 0 0;max-width:680px}.cv-head[data-astro-cid-lhve4llt] .meta[data-astro-cid-lhve4llt]{margin-top:32px;padding-top:20px;border-top:1px solid var(--ink-hair);display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.cv-head[data-astro-cid-lhve4llt] .meta[data-astro-cid-lhve4llt] .k[data-astro-cid-lhve4llt]{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-mute)}.cv-head[data-astro-cid-lhve4llt] .meta[data-astro-cid-lhve4llt] .v[data-astro-cid-lhve4llt]{font-family:var(--serif);font-weight:500;font-size:18px;letter-spacing:-.005em;margin-top:4px;word-break:break-word}.cv-head[data-astro-cid-lhve4llt] .meta[data-astro-cid-lhve4llt] .v[data-astro-cid-lhve4llt] a[data-astro-cid-lhve4llt]{border-bottom:1px solid var(--citation);padding-bottom:1px}.cv-head[data-astro-cid-lhve4llt] .portrait[data-astro-cid-lhve4llt]{aspect-ratio:4/5;display:flex;align-items:flex-end;justify-content:center;position:relative}.cv-head[data-astro-cid-lhve4llt] .portrait[data-astro-cid-lhve4llt] img{width:100%;height:auto;max-height:100%;object-fit:contain}.cv-head[data-astro-cid-lhve4llt] .actions[data-astro-cid-lhve4llt]{margin-top:24px;display:flex;gap:8px}.cv-head[data-astro-cid-lhve4llt] .actions[data-astro-cid-lhve4llt] a[data-astro-cid-lhve4llt],.cv-head[data-astro-cid-lhve4llt] .actions[data-astro-cid-lhve4llt] button[data-astro-cid-lhve4llt]{padding:10px 14px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--ink);border-radius:3px;color:var(--ink);transition:.15s;background:transparent;cursor:pointer}.cv-head[data-astro-cid-lhve4llt] .actions[data-astro-cid-lhve4llt] a[data-astro-cid-lhve4llt]:hover,.cv-head[data-astro-cid-lhve4llt] .actions[data-astro-cid-lhve4llt] button[data-astro-cid-lhve4llt]:hover,.cv-head[data-astro-cid-lhve4llt] .actions[data-astro-cid-lhve4llt] a[data-astro-cid-lhve4llt].primary{background:var(--ink);color:var(--paper)}.cv-head[data-astro-cid-lhve4llt] .actions[data-astro-cid-lhve4llt] a[data-astro-cid-lhve4llt].primary:hover{background:var(--citation);color:var(--ink);border-color:var(--citation)}.cv-main[data-astro-cid-lhve4llt]{display:grid;grid-template-columns:240px 1fr;gap:64px;padding:64px 0 96px}.cv-toc[data-astro-cid-lhve4llt]{position:sticky;top:96px;align-self:start;font-family:var(--mono);font-size:11px}.cv-toc[data-astro-cid-lhve4llt] .label[data-astro-cid-lhve4llt]{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:14px}.cv-toc[data-astro-cid-lhve4llt] ol[data-astro-cid-lhve4llt]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;counter-reset:t}.cv-toc[data-astro-cid-lhve4llt] ol[data-astro-cid-lhve4llt] li[data-astro-cid-lhve4llt]{padding-left:24px;position:relative;line-height:1.4;counter-increment:t}.cv-toc[data-astro-cid-lhve4llt] ol[data-astro-cid-lhve4llt] li[data-astro-cid-lhve4llt]:before{content:counter(t,decimal-leading-zero);position:absolute;left:0;color:var(--ink-faint)}.cv-toc[data-astro-cid-lhve4llt] ol[data-astro-cid-lhve4llt] li[data-astro-cid-lhve4llt] a[data-astro-cid-lhve4llt]{color:var(--ink-mute)}.cv-toc[data-astro-cid-lhve4llt] ol[data-astro-cid-lhve4llt] li[data-astro-cid-lhve4llt] a[data-astro-cid-lhve4llt]:hover,.cv-toc[data-astro-cid-lhve4llt] ol[data-astro-cid-lhve4llt] li[data-astro-cid-lhve4llt] a[data-astro-cid-lhve4llt].active{color:var(--citation)}.cv-toc[data-astro-cid-lhve4llt] .total[data-astro-cid-lhve4llt]{margin-top:28px;padding-top:18px;border-top:1px solid var(--ink-hair);display:flex;flex-direction:column;gap:6px}.cv-toc[data-astro-cid-lhve4llt] .total[data-astro-cid-lhve4llt] .v[data-astro-cid-lhve4llt]{font-family:var(--serif);font-weight:600;font-size:32px;letter-spacing:-.02em;line-height:1;color:var(--ink);font-variation-settings:"opsz" 96}.cv-toc[data-astro-cid-lhve4llt] .total[data-astro-cid-lhve4llt] .k[data-astro-cid-lhve4llt]{font-size:10px;color:var(--ink-mute);letter-spacing:.08em;text-transform:uppercase}.cv-section[data-astro-cid-lhve4llt]{padding-bottom:56px;border-bottom:1px solid var(--ink-hair)}.cv-section[data-astro-cid-lhve4llt]:last-of-type{border-bottom:none}.cv-section[data-astro-cid-lhve4llt]+.cv-section[data-astro-cid-lhve4llt]{padding-top:48px}.cv-section[data-astro-cid-lhve4llt] h2[data-astro-cid-lhve4llt]{font-family:var(--serif);font-weight:600;font-size:clamp(28px,4.5vw,36px);letter-spacing:-.02em;line-height:1.05;margin:0 0 6px;font-variation-settings:"opsz" 96}.cv-section[data-astro-cid-lhve4llt] h2[data-astro-cid-lhve4llt] em[data-astro-cid-lhve4llt]{font-style:italic;color:var(--citation);font-weight:500}.cv-section[data-astro-cid-lhve4llt] .section-meta[data-astro-cid-lhve4llt]{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:28px}.summary[data-astro-cid-lhve4llt] p[data-astro-cid-lhve4llt]{font-family:var(--serif);font-size:20px;line-height:1.55;color:var(--ink);margin:0 0 14px;max-width:720px}.summary[data-astro-cid-lhve4llt] p[data-astro-cid-lhve4llt] em[data-astro-cid-lhve4llt]{font-style:italic;color:var(--citation)}.summary[data-astro-cid-lhve4llt] p[data-astro-cid-lhve4llt] strong[data-astro-cid-lhve4llt]{font-weight:600}.career-row[data-astro-cid-lhve4llt]{display:grid;grid-template-columns:140px 1fr;gap:32px;padding:24px 0;border-bottom:1px solid var(--ink-hair)}.career-row[data-astro-cid-lhve4llt]:last-child{border-bottom:none}.career-row[data-astro-cid-lhve4llt] .when[data-astro-cid-lhve4llt]{font-family:var(--mono);font-size:12px;color:var(--ink-mute);letter-spacing:.04em;padding-top:6px}.career-row[data-astro-cid-lhve4llt] .when[data-astro-cid-lhve4llt] .now[data-astro-cid-lhve4llt]{color:var(--citation)}.career-row[data-astro-cid-lhve4llt] h3[data-astro-cid-lhve4llt]{font-family:var(--serif);font-weight:600;font-size:22px;letter-spacing:-.01em;line-height:1.2;margin:0;font-variation-settings:"opsz" 72}.career-row[data-astro-cid-lhve4llt] .org[data-astro-cid-lhve4llt]{font-family:var(--sans);font-size:14px;color:var(--citation);margin-top:2px;font-weight:500}.career-row[data-astro-cid-lhve4llt] p[data-astro-cid-lhve4llt]{font-family:var(--sans);font-size:14px;line-height:1.55;color:var(--ink-soft);margin:10px 0 0;max-width:720px}.talks-table[data-astro-cid-lhve4llt]{width:100%;border-collapse:separate;border-spacing:0;font-family:var(--sans);font-size:14px}.talks-table[data-astro-cid-lhve4llt] thead[data-astro-cid-lhve4llt] th[data-astro-cid-lhve4llt]{text-align:left;padding:12px 16px 12px 0;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-mute);border-bottom:1px solid var(--ink)}.talks-table[data-astro-cid-lhve4llt] tbody[data-astro-cid-lhve4llt] td[data-astro-cid-lhve4llt]{padding:14px 16px 14px 0;border-bottom:1px solid var(--ink-hair);vertical-align:top}.talks-table[data-astro-cid-lhve4llt] tbody[data-astro-cid-lhve4llt] td[data-astro-cid-lhve4llt].year{font-family:var(--mono);font-size:13px;color:var(--ink);white-space:nowrap;padding-top:16px}.talks-table[data-astro-cid-lhve4llt] tbody[data-astro-cid-lhve4llt] td[data-astro-cid-lhve4llt].event{font-family:var(--serif);font-weight:600;font-size:17px;letter-spacing:-.005em;line-height:1.25;color:var(--ink);font-variation-settings:"opsz" 72}.talks-table[data-astro-cid-lhve4llt] tbody[data-astro-cid-lhve4llt] td[data-astro-cid-lhve4llt].event .loc[data-astro-cid-lhve4llt]{display:block;font-family:var(--sans);font-size:12px;color:var(--ink-mute);font-weight:400;margin-top:3px}.talks-table[data-astro-cid-lhve4llt] tbody[data-astro-cid-lhve4llt] td[data-astro-cid-lhve4llt].topic{font-family:var(--sans);font-size:13.5px;line-height:1.45;color:var(--ink-soft)}.talks-table[data-astro-cid-lhve4llt] tbody[data-astro-cid-lhve4llt] td[data-astro-cid-lhve4llt].topic em{font-style:italic;color:var(--ink)}.talks-table[data-astro-cid-lhve4llt] tbody[data-astro-cid-lhve4llt] td[data-astro-cid-lhve4llt].role{font-family:var(--mono);font-size:11px;color:var(--ink-mute);padding-top:18px;white-space:nowrap}.talks-table[data-astro-cid-lhve4llt] tbody[data-astro-cid-lhve4llt] td[data-astro-cid-lhve4llt].role.flagship{color:var(--citation);font-weight:500}.talks-table[data-astro-cid-lhve4llt] tbody[data-astro-cid-lhve4llt] tr[data-astro-cid-lhve4llt]:hover td[data-astro-cid-lhve4llt]{background:var(--bone)}.press-row[data-astro-cid-lhve4llt]{display:grid;grid-template-columns:140px 1fr 80px;gap:32px;padding:20px 0;border-bottom:1px solid var(--ink-hair);align-items:start}.press-row[data-astro-cid-lhve4llt]:last-child{border-bottom:none}.press-row[data-astro-cid-lhve4llt] .pub[data-astro-cid-lhve4llt]{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--citation);padding-top:4px}.press-row[data-astro-cid-lhve4llt] .body[data-astro-cid-lhve4llt] h3[data-astro-cid-lhve4llt]{font-family:var(--serif);font-weight:600;font-size:18px;letter-spacing:-.005em;line-height:1.25;margin:0}.press-row[data-astro-cid-lhve4llt] .body[data-astro-cid-lhve4llt] h3[data-astro-cid-lhve4llt] em{font-style:italic}.press-row[data-astro-cid-lhve4llt] .body[data-astro-cid-lhve4llt] h3[data-astro-cid-lhve4llt] a[data-astro-cid-lhve4llt]{border-bottom:1px solid transparent;transition:.15s}.press-row[data-astro-cid-lhve4llt] .body[data-astro-cid-lhve4llt] h3[data-astro-cid-lhve4llt] a[data-astro-cid-lhve4llt]:hover{border-bottom-color:var(--citation);color:var(--citation)}.press-row[data-astro-cid-lhve4llt] .body[data-astro-cid-lhve4llt] .ctx[data-astro-cid-lhve4llt]{font-family:var(--sans);font-size:13px;line-height:1.5;color:var(--ink-soft);margin:6px 0 0}.press-row[data-astro-cid-lhve4llt] .when[data-astro-cid-lhve4llt]{font-family:var(--mono);font-size:11px;color:var(--ink-mute);text-align:right;padding-top:4px;white-space:nowrap}.topics[data-astro-cid-lhve4llt]{display:flex;flex-direction:column;gap:14px}.topic-bar[data-astro-cid-lhve4llt]{display:grid;grid-template-columns:220px 1fr 80px;gap:24px;align-items:center;padding:8px 0}.topic-bar[data-astro-cid-lhve4llt] .name[data-astro-cid-lhve4llt]{font-family:var(--serif);font-weight:500;font-size:17px;letter-spacing:-.005em;color:var(--ink)}.topic-bar[data-astro-cid-lhve4llt] .name[data-astro-cid-lhve4llt] em{font-style:italic;color:var(--citation);font-weight:500}.topic-bar[data-astro-cid-lhve4llt] .bar[data-astro-cid-lhve4llt]{height:6px;background:var(--bone);border-radius:3px;overflow:hidden;position:relative}.topic-bar[data-astro-cid-lhve4llt] .bar[data-astro-cid-lhve4llt] .fill[data-astro-cid-lhve4llt]{position:absolute;left:0;top:0;bottom:0;background:var(--citation);border-radius:3px}.topic-bar[data-astro-cid-lhve4llt] .count[data-astro-cid-lhve4llt]{font-family:var(--mono);font-size:12px;color:var(--ink-mute);text-align:right}.certs-grid[data-astro-cid-lhve4llt]{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.cert-card[data-astro-cid-lhve4llt]{padding:24px;border:1px solid var(--ink-hair);border-radius:4px;display:flex;flex-direction:column;gap:10px}.cert-card[data-astro-cid-lhve4llt] .since[data-astro-cid-lhve4llt]{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--citation)}.cert-card[data-astro-cid-lhve4llt] h3[data-astro-cid-lhve4llt]{font-family:var(--serif);font-weight:600;font-size:18px;letter-spacing:-.005em;line-height:1.2;margin:0}.cert-card[data-astro-cid-lhve4llt] p[data-astro-cid-lhve4llt]{font-family:var(--sans);font-size:13px;line-height:1.5;color:var(--ink-soft);margin:0}.cert-card[data-astro-cid-lhve4llt] .stamp[data-astro-cid-lhve4llt]{font-family:var(--mono);font-size:10px;color:var(--ink-mute);letter-spacing:.04em;margin-top:auto;padding-top:8px;border-top:1px solid var(--ink-hair)}.meta-row[data-astro-cid-lhve4llt]{display:grid;grid-template-columns:1fr 1fr 1fr;gap:48px;padding:32px 0 0}.meta-row[data-astro-cid-lhve4llt] .col[data-astro-cid-lhve4llt] h3[data-astro-cid-lhve4llt]{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute);margin:0 0 14px;font-weight:500}.meta-row[data-astro-cid-lhve4llt] .col[data-astro-cid-lhve4llt] ul[data-astro-cid-lhve4llt]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-family:var(--serif);font-size:17px;color:var(--ink)}.meta-row[data-astro-cid-lhve4llt] .col[data-astro-cid-lhve4llt] ul[data-astro-cid-lhve4llt] li[data-astro-cid-lhve4llt] em[data-astro-cid-lhve4llt]{font-style:italic;color:var(--citation);font-size:13px;font-family:var(--sans);margin-left:8px}.meta-row[data-astro-cid-lhve4llt] .col[data-astro-cid-lhve4llt] ul[data-astro-cid-lhve4llt] li[data-astro-cid-lhve4llt] a[data-astro-cid-lhve4llt]{border-bottom:1px solid var(--citation);padding-bottom:1px;font-family:var(--sans);font-size:14px}.cta-block[data-astro-cid-lhve4llt]{padding:80px 0 96px;border-top:1px solid var(--ink)}.cta-inner[data-astro-cid-lhve4llt]{display:grid;grid-template-columns:1.5fr 1fr;gap:48px;align-items:end}.cta-inner[data-astro-cid-lhve4llt] h2[data-astro-cid-lhve4llt]{font-family:var(--serif);font-weight:600;font-size:clamp(36px,6vw,56px);letter-spacing:-.025em;line-height:.98;margin:0;font-variation-settings:"opsz" 144}.cta-inner[data-astro-cid-lhve4llt] h2[data-astro-cid-lhve4llt] em[data-astro-cid-lhve4llt]{font-style:italic;color:var(--citation);font-weight:500}.cta-inner[data-astro-cid-lhve4llt] p[data-astro-cid-lhve4llt]{font-family:var(--serif);font-style:italic;font-size:20px;line-height:1.45;color:var(--ink-soft);margin:18px 0 0;max-width:540px}.cta-actions[data-astro-cid-lhve4llt]{display:flex;flex-direction:column;gap:10px;align-items:flex-start}.cta-actions[data-astro-cid-lhve4llt] .btn[data-astro-cid-lhve4llt]{padding:14px 24px;font-family:var(--sans);font-size:14px;font-weight:500;border-radius:3px}.cta-actions[data-astro-cid-lhve4llt] .btn[data-astro-cid-lhve4llt].primary{background:var(--ink);color:var(--paper)}.cta-actions[data-astro-cid-lhve4llt] .btn[data-astro-cid-lhve4llt].primary:hover{background:var(--citation);color:var(--ink)}.cta-actions[data-astro-cid-lhve4llt] .btn[data-astro-cid-lhve4llt].outline{background:transparent;border:1px solid var(--ink);color:var(--ink)}@media(max-width:900px){.cv-head-grid[data-astro-cid-lhve4llt]{grid-template-columns:1fr}.cv-head[data-astro-cid-lhve4llt] .portrait[data-astro-cid-lhve4llt]{max-width:240px}.cv-head[data-astro-cid-lhve4llt] .meta[data-astro-cid-lhve4llt]{grid-template-columns:repeat(2,1fr)}.cv-main[data-astro-cid-lhve4llt]{grid-template-columns:1fr;gap:32px}.cv-toc[data-astro-cid-lhve4llt]{position:static}.career-row[data-astro-cid-lhve4llt]{grid-template-columns:1fr;gap:6px}.talks-table[data-astro-cid-lhve4llt] thead[data-astro-cid-lhve4llt] th[data-astro-cid-lhve4llt]:nth-child(3),.talks-table[data-astro-cid-lhve4llt] tbody[data-astro-cid-lhve4llt] td[data-astro-cid-lhve4llt].topic{display:none}.press-row[data-astro-cid-lhve4llt]{grid-template-columns:1fr;gap:6px}.press-row[data-astro-cid-lhve4llt] .when[data-astro-cid-lhve4llt]{text-align:left}.certs-grid[data-astro-cid-lhve4llt]{grid-template-columns:1fr}.meta-row[data-astro-cid-lhve4llt]{grid-template-columns:1fr;gap:28px}.cta-inner[data-astro-cid-lhve4llt]{grid-template-columns:1fr}.topic-bar[data-astro-cid-lhve4llt]{grid-template-columns:1fr;gap:4px}.topic-bar[data-astro-cid-lhve4llt] .count[data-astro-cid-lhve4llt]{text-align:left}}
