.resume{max-width:70rem;margin-inline:auto;font-size:var(--step--1);line-height:var(--leading-body)}.resume-header{padding-block:var(--space-8) var(--space-6);border-bottom:var(--hairline) solid var(--ink)}.resume-kicker,.resume-section>h2,.resume-date,.resume-parallel,.resume-msu figcaption,.resume-source{font-family:var(--font-mono);font-size:var(--step--2);line-height:var(--leading-body);color:var(--ink-soft)}.resume-kicker{display:flex;flex-wrap:wrap;gap:var(--space-2)}.resume h1{margin-block:var(--space-2);font-size:var(--step-3);line-height:var(--leading-tight)}.resume-headline{font-size:var(--step-0);font-weight:600;line-height:var(--leading-heading)}.resume-summary{max-width:70ch;margin-top:var(--space-3);color:var(--ink-soft)}.resume-award-mention{color:var(--ink-soft);font-size:var(--step--1);font-weight:400}.resume-continuation{margin-top:var(--space-4);color:var(--ink-soft);font-family:var(--font-mono);font-size:var(--step--2)}@media print{.resume-continuation{display:none}}.resume-contact{display:flex;flex-wrap:wrap;align-items:center;gap:0 var(--space-6);margin-top:var(--space-3);font-family:var(--font-mono);font-size:var(--step--2)}.resume-contact>a,.resume-contact>button{display:inline-flex;align-items:center;min-height:var(--story-touch)}.resume-contact>button{padding:0;border:0;background:transparent;color:var(--accent);text-decoration:underline;text-decoration-thickness:var(--hairline);text-underline-offset:var(--space-1);cursor:pointer}.resume-contact>button:hover{color:var(--accent-hover)}.resume-contact .markdown-viewer-trigger{font-size:var(--step--2)}.resume-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:var(--space-12);padding-block:var(--space-6) var(--space-8)}.resume-main,.resume-details{min-width:0}.resume-details{border-left:var(--hairline) solid var(--ink-faint);padding-left:var(--space-6)}.resume-section+.resume-section{margin-top:var(--space-8)}.resume-section>h2{margin-bottom:var(--space-4);font-weight:400;letter-spacing:var(--tracking-label);text-transform:uppercase;text-wrap:pretty}.resume h3{font-family:var(--font-body);font-size:var(--step--1);font-weight:600;line-height:var(--leading-heading);letter-spacing:normal;text-wrap:pretty}.resume-job h3{font-size:var(--step-0)}.resume-job+.resume-job{margin-top:var(--space-4);padding-top:var(--space-4);border-top:var(--hairline) solid var(--ink-faint)}.resume-job-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:var(--space-2) var(--space-4)}.resume-job-header>.resume-date{text-align:right}.resume-organization{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2) var(--space-3);margin-top:var(--space-1);color:var(--ink-soft)}.resume-parallel{color:var(--accent)}.resume-job-summary,.resume-detail{margin-top:var(--space-2)}.resume-job--early+.resume-job--early{margin-top:var(--space-3);padding-top:var(--space-3)}.resume-job--early h3{font-size:var(--step--1)}.resume-projects{border-top:var(--hairline) solid var(--ink);padding-top:var(--space-4)}.resume-project+.resume-project{margin-top:var(--space-4)}.resume-project>p,.resume-award>p:last-child{margin-top:var(--space-2)}.resume-project-links{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);margin-top:var(--space-2);font-family:var(--font-mono);font-size:var(--step--2)}.resume-practice,.resume-languages{margin:0}.resume-practice>div+div{margin-top:var(--space-3)}.resume-practice dt{font-weight:600}.resume-practice dd{margin:var(--space-1) 0 0;color:var(--ink-soft)}.resume-msu{margin-bottom:var(--space-4);color:var(--accent)}.resume-msu svg{display:block;width:100%;height:auto;stroke-width:1.5}.resume-msu figcaption{margin-top:var(--space-2)}.resume-education>p{margin-top:var(--space-2)}.resume-award+.resume-award{margin-top:var(--space-4)}.resume-award h3{margin-top:var(--space-1)}.resume-languages>div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-2)}.resume-languages dd{margin:0;color:var(--ink-soft)}.resume-source{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-2) var(--space-6);padding-block:var(--space-4);border-top:var(--hairline) solid var(--ink-faint)}.resume-agent{max-width:70rem;margin:var(--space-6) auto var(--space-8)}@media(max-width:1079px){.resume-grid{gap:var(--space-6)}.resume-job-header{grid-template-columns:1fr;gap:var(--space-1)}.resume-job-header>.resume-date{text-align:left}}@media(max-width:720px){.resume-grid{grid-template-columns:1fr;gap:var(--space-8)}.resume-details{padding:var(--space-6) 0 0;border-left:0;border-top:var(--hairline) solid var(--ink)}.resume-msu{max-width:22rem}}@media print{.resume{max-width:none;font-size:var(--step--1)}.resume-header{padding-block:0 var(--space-3)}.resume h1{font-size:var(--step-2)}.resume-summary,.resume-contact{margin-top:var(--space-2)}.resume-contact>a{min-height:0}.resume-agent{display:none}.resume-grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:var(--space-6);padding-block:var(--space-4)}.resume-details{padding:0 0 0 var(--space-4);border-top:0;border-left:var(--hairline) solid var(--ink-faint)}.resume-section>h2{margin-bottom:var(--space-3);break-after:avoid}.resume-job-header{grid-template-columns:1fr;gap:0}.resume-job-header>.resume-date{text-align:left}.resume-job h3{font-size:var(--step--1)}.resume-job+.resume-job{margin-top:var(--space-3);padding-top:var(--space-3)}.resume-section+.resume-section{margin-top:var(--space-4)}.resume-job,.resume-project,.resume-details .resume-section,.resume-source{break-inside:avoid}.resume p{orphans:2;widows:2}.resume a{color:inherit}.resume-source{padding-block:var(--space-2)}}.cv-edition{max-width:70rem;margin:var(--space-12) auto;font-size:var(--step-0);line-height:var(--leading-body)}.cv-edition [id],.resume [id]{scroll-margin-top:var(--space-12)}.cv-eyebrow{font-family:var(--font-mono);font-size:var(--step--2);line-height:var(--leading-body);color:var(--ink-soft);letter-spacing:var(--tracking-label)}.cv-edition-opening{border-top:1px solid var(--ink);padding-top:var(--space-8)}.cv-edition-opening>h2,.cv-chapter-heading>h2{font-family:var(--font-display);font-size:var(--step-4);font-weight:400;line-height:var(--leading-tight);letter-spacing:var(--tracking-display);margin-block:var(--space-3) var(--space-4)}.cv-edition-opening>p:last-of-type{max-width:50ch;color:var(--ink-soft)}.cv-contents{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 var(--space-6);margin-top:var(--space-8)}.cv-contents a{display:flex;align-items:baseline;gap:var(--space-3);padding-block:var(--space-3);border-bottom:1px solid var(--ink-faint);text-decoration:none}.cv-contents a span{font-family:var(--font-mono);font-size:var(--step--2);color:var(--ink-soft)}.cv-chapter{margin-top:var(--space-12);padding-top:var(--space-8);border-top:1px solid var(--ink-faint)}.cv-chapter-intro{max-width:60ch;font-size:var(--step-1);line-height:var(--leading-heading);margin-bottom:var(--space-4)}.cv-prose{max-width:65ch;color:var(--ink-soft)}.cv-prose p+p{margin-top:var(--space-3)}.cv-story-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6);margin-top:var(--space-6)}.cv-work-story{padding:var(--space-6);border:1px solid var(--ink-faint);background:color-mix(in srgb,var(--paper) 95%,var(--accent));border-radius:var(--hairline);min-width:0}.cv-work-story h3{font-family:var(--font-display);font-size:var(--step-2);font-weight:400;line-height:var(--leading-heading);margin-block:var(--space-2) var(--space-3)}.cv-work-story>p:not(.cv-eyebrow),.cv-work-story li{max-width:60ch}.cv-work-story ul{margin-block:var(--space-3);padding-left:var(--space-6);color:var(--ink-soft)}.cv-work-story li+li{margin-top:var(--space-2)}.cv-story-links{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);margin-top:var(--space-4)}.cv-back-map{display:inline-block;margin-top:var(--space-4);font-family:var(--font-mono);font-size:var(--step--2)}.cv-blueprint{border:1px solid var(--ink-faint);margin-top:var(--space-6);background:radial-gradient(ellipse at 15% 5%,color-mix(in srgb,var(--accent) 9%,transparent),transparent 60%),var(--paper)}.cv-blueprint figcaption{display:grid;gap:var(--space-2);padding:var(--space-4);border-top:1px solid var(--ink-faint);font-size:var(--step--1);color:var(--ink-soft)}.cv-work-map svg{display:block;width:100%;height:auto}.cv-map-grid{stroke:var(--ink-faint);stroke-width:.6;stroke-dasharray:2 5;opacity:.7}.cv-map-connection{stroke:var(--accent);stroke-width:.8;opacity:.15}.cv-svg-year,.cv-svg-kind{font-family:var(--font-mono);font-size:var(--step--2);fill:var(--ink-soft)}.cv-svg-kind{font-size:var(--step--2)}.cv-map-star{fill:var(--accent);stroke:var(--paper);stroke-width:2}.cv-map-hit{fill:transparent}.cv-map-label{opacity:0;pointer-events:none;fill:var(--ink);font-family:var(--font-mono);font-size:var(--step--2);paint-order:stroke;stroke:var(--paper);stroke-width:3;stroke-linejoin:round}.cv-work-map a:hover .cv-map-star,.cv-work-map a:focus .cv-map-star{r:8}.cv-work-map a:focus{outline:none}.cv-work-map a:focus .cv-map-hit{stroke:var(--accent);stroke-width:2}.cv-timeline-viewport{overflow-x:auto;padding:var(--space-4) 0}.cv-timeline-viewport svg{display:block;width:100%;min-width:44rem}.cv-timeline-band{fill:var(--accent);opacity:.8}.cv-timeline a:focus{outline:none}.cv-timeline a:hover .cv-timeline-band,.cv-timeline a:focus .cv-timeline-band{opacity:1;stroke:var(--ink);stroke-width:2}.cv-explorer-filters,.cv-timeline-controls{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);font-family:var(--font-mono);font-size:var(--step--2);margin-top:var(--space-6)}.cv-timeline-controls{padding:var(--space-4);margin-top:0;border-bottom:1px solid var(--ink-faint)}.cv-explorer-filters[hidden],.cv-timeline-controls[hidden]{display:none}.cv-explorer-filters select,.cv-timeline-controls button{min-height:2.75rem;border:1px solid var(--ink-faint);border-radius:var(--space-6);color:var(--ink);background:var(--paper);padding:var(--space-2) var(--space-4);font:inherit}.cv-timeline-controls input{flex:1;min-width:8rem;accent-color:var(--accent)}.cv-timeline-controls output{min-width:4ch}.cv-filtered{display:none}.cv-future{opacity:.2}.cv-process{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--space-3);list-style:none;margin:0;padding:var(--space-8) var(--space-4)}.cv-process li{display:flex;flex-direction:column;gap:var(--space-3);font-size:var(--step--1);overflow-wrap:anywhere;border-top:1px solid var(--accent);padding-top:var(--space-3)}.cv-process li span{font-family:var(--font-mono);font-size:var(--step--2);color:var(--accent)}.cv-launch-line{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:var(--space-8) var(--space-4);gap:var(--space-4)}.cv-launch-line span{padding-block:var(--space-4);border-bottom:2px solid var(--accent)}.cv-launch-line small{display:block;font-family:var(--font-mono);font-size:var(--step--2);color:var(--accent);margin-bottom:var(--space-3)}.cv-judge-diagram{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-8) var(--space-4)}.cv-judge-diagram span:not([aria-hidden]){border:1px solid var(--accent);padding:var(--space-4);text-align:center;flex:1;font-size:var(--step--1)}.cv-demo-link{margin-top:var(--space-6);padding:var(--space-4);border-left:2px solid var(--accent)}.cv-colophon-links{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-top:var(--space-6)}.cv-story-dialog{color:var(--ink);background:var(--paper);border:1px solid var(--ink-faint);padding:var(--space-6);width:min(42rem,calc(100vw - 2rem));max-height:calc(100dvh - 3rem);margin:auto}.cv-story-dialog::backdrop{background:color-mix(in srgb,var(--ink) 50%,transparent)}.cv-story-dialog form{display:flex;justify-content:flex-end;margin-bottom:var(--space-4)}.cv-story-dialog button{background:none;color:var(--ink);border:1px solid var(--ink-faint);font:inherit;padding:var(--space-2) var(--space-4);min-height:2.75rem;cursor:pointer}.cv-story-dialog .cv-work-story{padding:0;border:0;background:none}.cv-story-dialog [data-cv-dialog-body]>a{display:inline-block;margin-top:var(--space-6)}@media(max-width:720px){.cv-contents,.cv-story-grid{grid-template-columns:1fr}.cv-work-map svg{min-width:42rem}.cv-work-map{overflow-x:auto}.cv-work-map figcaption{position:sticky;left:0;max-width:calc(100vw - 3rem)}.cv-process{grid-template-columns:repeat(3,minmax(0,1fr))}.cv-launch-line{grid-template-columns:repeat(2,minmax(0,1fr))}.cv-judge-diagram{flex-direction:column;align-items:stretch}.cv-judge-diagram span[aria-hidden]{transform:rotate(90deg);text-align:center}}@media print{.cv-edition,.resume-contact>button,.resume-contact .markdown-viewer-trigger{display:none!important}}.cv-work-map a:hover .cv-map-label,.cv-work-map a:focus .cv-map-label{opacity:1}.cv-work-explorer [data-kind=research]{color:var(--cv-map-research)}.cv-work-explorer [data-kind=ai]{color:var(--cv-map-ai)}.cv-work-explorer [data-kind=teaching]{color:var(--cv-map-teaching)}.cv-work-explorer [data-kind=founder]{color:var(--cv-map-founder)}.cv-work-explorer [data-kind=education]{color:var(--cv-map-education)}.cv-work-explorer [data-kind] .cv-map-star,.cv-work-explorer [data-kind] .cv-timeline-band{fill:currentColor}.cv-illustration>svg{display:block;width:100%;height:auto;color:var(--ink-soft);stroke-width:.8}.cv-illustration text{fill:currentColor;stroke:none;font-family:var(--font-mono);font-size:var(--step--2)}.cv-illustration-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6)}.cv-illustration .cv-diagram-node{fill:var(--paper);stroke:currentColor;stroke-width:.8}.cv-illustration .cv-diagram-track{stroke:currentColor;stroke-width:.8;opacity:.55}.cv-illustration .cv-diagram-accent{fill:var(--accent);stroke:var(--paper);stroke-width:1}.cv-illustration .cv-diagram-accent-stroke{stroke:var(--accent)}.cv-illustration .cv-diagram-grid{stroke-width:.55;opacity:.18}.cv-work-story .cv-illustration{margin-block:var(--space-4)}.cv-work-story .cv-illustration figcaption{padding:var(--space-3);font-size:var(--step--2)}@media(max-width:720px){.cv-illustration-pair{grid-template-columns:1fr}}.cv-edition :is(h2,h3){overflow-wrap:anywhere;hyphens:auto}.cv-story-grid .cv-work-story--illustrated{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);column-gap:var(--space-8);align-items:start;padding:var(--space-8) 0;border:0;border-top:1px solid var(--ink-faint);background:none}.cv-work-story--illustrated>:not(.cv-illustration,.cv-project-image){grid-column:1}.cv-story-grid .cv-work-story--illustrated>:is(.cv-illustration,.cv-project-image){grid-column:2;grid-row:1 / span 7;margin:0}.cv-work-story h3{letter-spacing:normal}.cv-motion-toggle{margin-top:var(--space-4);padding:var(--space-2) var(--space-4);min-height:2.75rem;font-family:var(--font-mono);font-size:var(--step--2);color:var(--ink-soft);background:var(--paper-raised);border:1px solid var(--ink-faint);border-radius:var(--space-8);cursor:pointer}.cv-motion-toggle[hidden]{display:none}.cv-motion-toggle:hover{color:var(--ink);border-color:var(--ink-soft)}@media(max-width:899px){.cv-story-grid .cv-work-story--illustrated{display:block}.cv-story-grid .cv-work-story--illustrated>:is(.cv-illustration,.cv-project-image){margin-block:var(--space-6)}}@media print{.resume-full-link{display:none!important}}@media(max-width:899px){.cv-illustration-pair{grid-template-columns:1fr}}.cv-project-image{overflow:hidden;border:1px solid var(--ink-faint);border-radius:var(--space-3);background:var(--paper-raised)}.cv-project-image img{display:block;width:100%;height:auto}.cv-project-image figcaption{padding:var(--space-4);color:var(--ink-soft);font-size:var(--step--1)}.resume a[href^="#"]{position:relative;color:inherit;text-decoration-line:underline;text-decoration-style:dotted;text-decoration-color:currentColor;text-decoration-thickness:var(--hairline);text-underline-offset:var(--space-1)}.resume a[href^="#"]:hover,.resume a[href^="#"]:focus-visible{color:inherit;text-decoration-style:solid}.resume a[data-cv-jump-hint]:after{content:attr(data-cv-jump-hint);position:absolute;z-index:8;top:100%;left:0;display:block;width:max-content;max-width:min(19rem,75vw);padding-block:var(--space-1);color:var(--ink-soft);background:var(--paper);font:400 var(--step--2)/var(--leading-body) var(--font-mono);letter-spacing:normal;text-transform:none;white-space:normal;pointer-events:none;opacity:0}.resume a[data-cv-jump-hint]:hover:after,.resume a[data-cv-jump-hint]:focus-visible:after{opacity:1}.cv-section-return{display:flex;align-items:center;margin-block:0 var(--space-6);padding-block:var(--space-2);border-bottom:var(--hairline) solid var(--ink-faint)}.cv-section-return .cv-section-return-button{display:inline-flex;align-items:center;min-height:2.75rem;padding:var(--space-1) 0;border:0;background:transparent;color:var(--ink-soft);font:400 var(--step--2)/var(--leading-body) var(--font-mono);text-align:left;cursor:pointer}.cv-section-return .cv-section-return-button:hover,.cv-section-return .cv-section-return-button:focus-visible{color:var(--ink);text-decoration:underline;text-underline-offset:var(--space-1)}@media print{.cv-section-return,.resume a[data-cv-jump-hint]:after{display:none!important}}.ux-cv-original :is(h2,h3)[data-cv-jump-target]:focus,.resume :is(h2,h3)[data-cv-jump-target]:focus{outline:none}
