.cv-illustration.cv-blueprint{--diagram-line: color-mix(in srgb, var(--ink-soft) 65%, var(--paper));--diagram-grid: color-mix(in srgb, var(--ink-soft) 14%, var(--paper));--diagram-blue: var(--accent);--diagram-copper: var(--gild);--diagram-green: var(--leaf);position:relative;overflow:hidden;border:var(--hairline) solid var(--diagram-line);border-radius:var(--space-3);background:var(--paper-raised)}.cv-illustration .cv-diagram-sheet{position:relative;padding:var(--space-4) var(--space-3);background-image:linear-gradient(var(--diagram-grid) var(--hairline),transparent var(--hairline)),linear-gradient(90deg,var(--diagram-grid) var(--hairline),transparent var(--hairline));background-size:var(--space-6) var(--space-6)}.cv-illustration[data-cv-illustration=geofence] .cv-diagram-sheet{background-image:none}.cv-illustration .cv-diagram-sheet:after{content:"";position:absolute;inset:var(--space-2);pointer-events:none;background:linear-gradient(var(--diagram-line) 0 0) var(--space-1) 0 / var(--hairline) var(--space-3) no-repeat,linear-gradient(var(--diagram-line) 0 0) 0 var(--space-1) / var(--space-3) var(--hairline) no-repeat,linear-gradient(var(--diagram-line) 0 0) calc(100% - var(--space-1)) 0 / var(--hairline) var(--space-3) no-repeat,linear-gradient(var(--diagram-line) 0 0) 100% var(--space-1) / var(--space-3) var(--hairline) no-repeat,linear-gradient(var(--diagram-line) 0 0) var(--space-1) 100% / var(--hairline) var(--space-3) no-repeat,linear-gradient(var(--diagram-line) 0 0) 0 calc(100% - var(--space-1)) / var(--space-3) var(--hairline) no-repeat,linear-gradient(var(--diagram-line) 0 0) calc(100% - var(--space-1)) 100% / var(--hairline) var(--space-3) no-repeat,linear-gradient(var(--diagram-line) 0 0) 100% calc(100% - var(--space-1)) / var(--space-3) var(--hairline) no-repeat}.cv-illustration .cv-diagram-sheet>svg{display:block;width:100%;height:auto;overflow:visible;color:var(--ink-soft);stroke-width:1}.cv-illustration .cv-diagram-sheet text{fill:var(--ink-soft);stroke:none;font:400 var(--step--2) var(--font-mono)}.cv-illustration .cv-diagram-sheet .cv-diagram-node{fill:var(--paper-raised);stroke:var(--diagram-line);stroke-width:1}.cv-illustration .cv-diagram-sheet .cv-diagram-track{fill:none;stroke:var(--diagram-line);stroke-width:1.3;opacity:1}.cv-illustration .cv-diagram-sheet .cv-diagram-accent-stroke{stroke:var(--diagram-blue);stroke-width:1.3}.cv-illustration .cv-diagram-sheet .cv-diagram-accent{fill:var(--diagram-blue);stroke:var(--paper-raised)}.cv-illustration .cv-diagram-sheet .cv-diagram-code{fill:color-mix(in srgb,var(--diagram-blue) 7%,var(--paper-raised));stroke:var(--diagram-blue)}.cv-illustration .cv-diagram-sheet .cv-diagram-code[data-code="1"]{fill:color-mix(in srgb,var(--diagram-copper) 8%,var(--paper-raised));stroke:var(--diagram-copper)}.cv-illustration .cv-diagram-sheet .cv-diagram-code[data-code="2"]{fill:color-mix(in srgb,var(--diagram-green) 8%,var(--paper-raised));stroke:var(--diagram-green)}.cv-illustration .cv-diagram-sheet .cv-diagram-geo-ring{fill:color-mix(in srgb,var(--diagram-blue) 12%,transparent);stroke:var(--diagram-blue);stroke-width:1.2}.cv-illustration .cv-diagram-sheet .cv-diagram-grid{stroke:var(--ink-soft);stroke-width:.55;opacity:.18}.cv-illustration .cv-diagram-sheet .cv-diagram-motion{display:none}.cv-illustration .cv-diagram-sheet .cv-diagram-runner-dot{fill:var(--diagram-blue);stroke:var(--paper-raised);stroke-width:.6}.cv-illustration .cv-diagram-sheet .cv-diagram-runner-halo{fill:var(--diagram-blue);stroke:none;opacity:.16}.cv-illustration.cv-blueprint>figcaption{padding:var(--space-4) var(--space-6);background:var(--paper-raised);border-color:var(--diagram-line)}.cv-illustration.cv-blueprint>figcaption .cv-eyebrow{color:var(--ink)}@media print{.cv-illustration .cv-diagram-motion{display:none!important}}.cv-illustration .cv-diagram-sheet .cv-diagram-ribbon-track{fill:none;stroke:var(--diagram-line);stroke-width:5;stroke-linecap:round}.cv-illustration .cv-diagram-sheet .cv-diagram-ribbon-fill{fill:none;stroke:var(--diagram-blue);stroke-width:5;stroke-linecap:round}.cv-illustration .cv-diagram-sheet .cv-diagram-ribbon-dot{fill:var(--diagram-blue);stroke:var(--diagram-blue);stroke-width:1.5}.cv-illustration .cv-diagram-sheet .cv-diagram-ribbon-label{fill:var(--diagram-blue)}.cv-illustration .cv-diagram-sheet .cv-diagram-attendee{fill:var(--diagram-blue);stroke:none}.cv-constellation{--cv-map-surface: var(--surface, var(--paper-raised));--cv-map-line: var(--border-strong, var(--ink-faint));position:relative;margin-block:var(--space-8);border:1px solid var(--cv-map-line);border-radius:var(--edition-radius);overflow:hidden;background:var(--cv-map-surface)}.cv-constellation [hidden]{display:none!important}.cv-constellation-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-6);border-bottom:1px solid var(--cv-map-line)}.cv-constellation-eyebrow{font:var(--step--2)/var(--leading-body) var(--font-mono);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-soft)}.cv-constellation-toolbar p{margin:var(--space-2) 0 0;font:400 var(--step-2)/var(--leading-tight) var(--font-display);color:var(--ink)}.cv-constellation-toolbar button{flex:none;border:1px solid var(--cv-map-line);border-radius:var(--radius-pill);padding:var(--space-3) var(--space-4);min-height:var(--story-touch);font:var(--step--2)/var(--leading-body) var(--font-mono);background:var(--paper);color:var(--ink);cursor:pointer}.cv-constellation-toolbar button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.cv-constellation-stage{position:relative;height:clamp(360px,48vw,560px);background:radial-gradient(ellipse at 15% 10%,color-mix(in srgb,var(--cv-map-research) 8%,transparent),transparent 55%),radial-gradient(ellipse at 85% 80%,color-mix(in srgb,var(--cv-map-founder) 8%,transparent),transparent 50%)}.cv-constellation-stage:before{content:"";position:absolute;inset:var(--space-3);pointer-events:none;border:1px solid color-mix(in srgb,var(--cv-map-line) 45%,transparent);border-radius:var(--radius-inner)}.cv-constellation canvas{display:block;width:100%;height:100%;touch-action:pan-y}.cv-constellation canvas[data-map-3d=true]{touch-action:none;cursor:grab}.cv-constellation canvas:focus-visible{outline:2px solid var(--accent);outline-offset:calc(-1 * var(--space-1))}.cv-constellation-mode{position:absolute;top:var(--space-3);right:var(--space-4);color:var(--ink-soft);font:var(--step--2) var(--font-mono);pointer-events:none}.cv-constellation-tip{position:absolute;z-index:2;max-width:min(19rem,calc(100% - 2rem));padding:var(--space-3) var(--space-4);border:1px solid var(--cv-map-line);border-radius:var(--radius-card);background:var(--cv-map-surface);color:var(--ink);font:var(--step--1)/var(--leading-body) var(--font-body);pointer-events:none;box-shadow:0 5px 20px color-mix(in srgb,var(--ink) 5%,transparent)}.cv-constellation-tip small{display:block;margin-top:var(--space-1);color:var(--ink-soft);font:var(--step--2)/var(--leading-body) var(--font-mono)}.cv-constellation-legend{display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-6);padding:var(--space-4) var(--space-6);font:var(--step--2)/var(--leading-body) var(--font-mono);color:var(--ink-soft)}.cv-constellation-legend span{display:flex;align-items:center;gap:var(--space-2)}.cv-constellation-legend i{width:.45rem;height:.45rem;border-radius:50%;background:var(--cv-map-colour);box-shadow:0 0 0 3px color-mix(in srgb,var(--cv-map-colour) 12%,transparent)}.cv-constellation [data-map-kind=research]{--cv-map-colour: var(--cv-map-research)}.cv-constellation [data-map-kind=ai]{--cv-map-colour: var(--cv-map-ai)}.cv-constellation [data-map-kind=teaching]{--cv-map-colour: var(--cv-map-teaching)}.cv-constellation [data-map-kind=founder]{--cv-map-colour: var(--cv-map-founder)}.cv-constellation [data-map-kind=education]{--cv-map-colour: var(--cv-map-education)}.cv-constellation-index{border-top:1px solid var(--cv-map-line);padding:var(--space-4) var(--space-6)}.cv-constellation-index summary{cursor:pointer;font:var(--step--2)/var(--leading-body) var(--font-mono);color:var(--ink-soft);min-height:1.5rem}.cv-constellation-index ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--space-6);list-style:none;margin:var(--space-4) 0 0;padding:0}.cv-constellation-index a{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) 0;border-top:1px solid var(--cv-map-line);font-size:var(--step--1);text-decoration:none}.cv-constellation-index a small{font:var(--step--2)/var(--leading-body) var(--font-mono);color:var(--ink-soft)}.cv-constellation figcaption{border-top:1px solid var(--cv-map-line);padding:var(--space-4) var(--space-6);font-size:var(--step--1);line-height:var(--leading-body);color:var(--ink-soft)}@media(max-width:640px){.cv-constellation-toolbar{align-items:flex-start;padding:var(--space-4)}.cv-constellation-toolbar p{font-size:var(--step-1)}.cv-constellation-toolbar button{max-width:8rem}.cv-constellation-stage{height:430px}.cv-constellation-index ul{grid-template-columns:1fr}.cv-constellation-legend,.cv-constellation-index,.cv-constellation figcaption{padding:var(--space-4)}}@media print{.cv-constellation{display:none}}.cv-timeline-edition{margin:var(--space-8) 0 0;min-width:0;overflow:clip;border:1px solid var(--ink-faint);background:radial-gradient(ellipse at 95% 0,color-mix(in srgb,var(--accent) 6%,transparent),transparent 65%),var(--paper-raised)}.cvt-heading{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-6)}.cvt-number,.cvt-span,.cvt-controls,.cvt-scroll-hint,.cvt-undated-count{font-family:var(--font-mono);font-size:var(--step--2)}.cvt-heading .cvt-number{margin:0 0 var(--space-2);color:var(--ink-soft);letter-spacing:var(--tracking-label);text-transform:uppercase}.cvt-heading .cvt-deck{margin:0;font:400 var(--step-1)/var(--leading-heading) var(--font-body)}.cvt-span{color:var(--ink-soft);white-space:nowrap}.cvt-span span{color:var(--accent)}.cvt-controls{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-block:1px solid var(--ink-faint);background:color-mix(in srgb,var(--paper) 75%,transparent)}.cvt-controls[hidden]{display:none}.cvt-controls button{min-height:var(--story-touch);min-width:calc(var(--space-12) + var(--space-6));padding:var(--space-2) var(--space-4);border:1px solid var(--ink-faint);border-radius:var(--space-8);background:var(--paper-raised);color:var(--ink);font:inherit;cursor:pointer}.cvt-controls button[aria-pressed=true]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--paper))}.cvt-controls input{flex:1;min-width:calc(var(--space-24) * 2);min-height:var(--story-touch);accent-color:var(--accent)}.cvt-controls output{min-width:8ch;text-align:end;color:var(--ink)}.cvt-scroll-hint{padding:var(--space-2) var(--space-6);color:var(--ink-soft);border-bottom:1px solid var(--ink-faint)}.cv-timeline-edition .cvt-viewport{max-height:min(68svh,calc(var(--space-24) * 6));overflow:auto;overscroll-behavior:contain;scrollbar-color:var(--ink-faint) transparent;scrollbar-width:thin;padding:0;background:var(--paper)}.cvt-sheet{min-width:64rem}.cv-timeline-edition .cvt-viewport svg{display:block;width:100%;min-width:0;height:auto}.cvt-axis{position:sticky;top:0;z-index:2;background:var(--paper-raised);border-bottom:1px solid var(--ink-faint)}.cvt-drawing text,.cvt-axis text{stroke:none;font-family:var(--font-mono)}.cvt-axis-label,.cvt-year,.cvt-entry-date{font-size:var(--story-svg-label);fill:var(--ink-soft)}.cvt-entry-label{font-size:var(--story-svg-label-compact);fill:var(--ink)}.cvt-lane-title{font-size:var(--story-svg-label);fill:var(--ink-soft);letter-spacing:var(--tracking-label);text-transform:uppercase}.cvt-lane-wash{fill:color-mix(in srgb,var(--ink) 3%,transparent)}.cvt-fine-grid{fill:none;stroke:color-mix(in srgb,var(--ink) 4%,transparent);stroke-width:.5}.cvt-year-line,.cvt-tick,.cvt-lane-rule{stroke:var(--ink-faint);stroke-width:.8}.cvt-year-line{stroke-dasharray:2 5}.cvt-row-guide{stroke:color-mix(in srgb,var(--ink) 9%,transparent);stroke-width:.6}.cvt-leader{stroke:var(--ink-faint);stroke-width:.8}.cvt-entry{color:var(--accent);cursor:pointer}.cvt-row-hit{fill:transparent;stroke:transparent;stroke-width:1}.cvt-band-track{fill:currentColor;opacity:.12}.cv-timeline-edition .cv-timeline-band{fill:currentColor;opacity:.8}.cvt-start{fill:var(--paper);stroke:currentColor;stroke-width:1.6}.cvt-continuing{fill:none;stroke:var(--paper-raised);stroke-width:1.5}.cvt-entry:hover .cvt-row-hit,.cvt-entry:focus-visible .cvt-row-hit{fill:color-mix(in srgb,var(--accent) 5%,transparent);stroke:var(--accent)}.cvt-entry:hover .cvt-entry-label,.cvt-entry:focus-visible .cvt-entry-label{fill:var(--accent)}.cvt-entry:focus{outline:none}.cvt-cursor{pointer-events:none;color:var(--accent)}.cvt-cursor line{stroke:currentColor;stroke-width:1;stroke-dasharray:2 3}.cvt-cursor path{fill:currentColor}.cvt-cursor text{fill:currentColor;font-size:var(--story-svg-label)}.cvt-undated{border-top:1px solid var(--ink-faint)}.cvt-undated summary{display:flex;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-6);cursor:pointer;color:var(--ink);font-size:var(--step--1)}.cvt-undated summary:after{content:"+";font-family:var(--font-mono)}.cvt-undated[open] summary:after{content:"−"}.cvt-undated-count{color:var(--ink-soft);margin-inline-start:auto}.cvt-undated>p{margin:0;padding:0 var(--space-6) var(--space-4);font-size:var(--step--1);color:var(--ink-soft)}.cvt-undated-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:0 var(--space-6) var(--space-4);gap:0 var(--space-6)}.cvt-undated-entry{display:grid;grid-template-columns:var(--space-3) minmax(0,1fr) auto;align-items:center;gap:var(--space-2);min-height:var(--story-touch);border-top:1px solid var(--ink-faint);padding-block:var(--space-2);font-size:var(--step--1)}.cvt-undated-point{width:var(--space-1);height:var(--space-1);border:1px solid currentColor;border-radius:50%}.cv-timeline-edition figcaption{padding:var(--space-4) var(--space-6);border-top:1px solid var(--ink-faint);color:var(--ink-soft);font-size:var(--step--1)}@media(max-width:40rem){.cvt-heading{align-items:start;padding:var(--space-4)}.cvt-span{display:none}.cvt-controls{padding-inline:var(--space-4)}.cvt-controls label{flex:1}.cvt-controls input{order:2;flex-basis:100%}.cvt-scroll-hint{padding-inline:var(--space-4)}.cvt-undated summary{flex-wrap:wrap;padding-inline:var(--space-4)}.cvt-undated-count{margin-inline-start:0}.cvt-undated>p{padding-inline:var(--space-4)}.cvt-undated-list{grid-template-columns:minmax(0,1fr);padding-inline:var(--space-4)}}@media(prefers-reduced-motion:reduce){.cv-timeline-edition *{scroll-behavior:auto}}.cvt-entry[data-kind=research],.cvt-undated-entry[data-kind=research]{color:var(--cv-map-research)}.cvt-entry[data-kind=ai],.cvt-undated-entry[data-kind=ai]{color:var(--cv-map-ai)}.cvt-entry[data-kind=teaching],.cvt-undated-entry[data-kind=teaching]{color:var(--cv-map-teaching)}.cvt-entry[data-kind=founder],.cvt-undated-entry[data-kind=founder]{color:var(--cv-map-founder)}.cvt-entry[data-kind=education],.cvt-undated-entry[data-kind=education]{color:var(--cv-map-education)}.cvt-entry.cv-filtered,.cvt-undated-entry.cv-filtered{display:none}.cv-timeline-edition .cvt-entry.cv-future{opacity:1}.cvt-entry.cv-future .cvt-start,.cvt-entry.cv-future .cvt-continuing{opacity:.2}.cvt-entry.cv-future .cvt-entry-label{fill:var(--ink-soft)}.cvt-mobile{display:none}@media(max-width:639px){.cv-timeline-edition .cvt-viewport,.cvt-scroll-hint{display:none}.cvt-mobile{display:block;max-height:60svh;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:0 var(--space-4) var(--space-4);scrollbar-width:thin;background:var(--paper)}.cvt-mobile-axis{position:sticky;top:0;z-index:2;padding-top:var(--space-3);background:var(--paper);border-bottom:1px solid var(--ink-faint)}.cvt-mobile svg{display:block;width:100%;height:auto;overflow:visible}.cvt-mobile-axis text{font-family:var(--font-mono)}.cvt-mobile-lane h3{margin:0;padding:var(--space-4) 0 var(--space-2);font:400 var(--step--2)/var(--leading-body) var(--font-mono);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-soft);border-bottom:1px solid var(--ink-faint)}.cvt-mobile-entry{display:grid;gap:var(--space-1);padding-block:var(--space-3);border-bottom:1px solid var(--ink-faint);text-decoration:none}.cvt-mobile-entry.cv-filtered{display:none}.cvt-mobile-title{font-size:var(--step--1);line-height:var(--leading-heading);color:var(--ink);overflow-wrap:anywhere}.cvt-mobile-title>span{color:var(--ink-soft)}.cvt-mobile-date{color:var(--ink-soft);font-family:var(--font-mono);font-size:var(--step--2)}.cvt-mobile-entry svg{margin-top:var(--space-1)}.cvt-mobile-entry:focus-visible{outline:2px solid var(--accent);outline-offset:var(--space-1)}.cvt-mobile-cursor{stroke:var(--accent);stroke-width:.75;stroke-dasharray:2 2;pointer-events:none}}.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-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--parallel{border-left:var(--hairline) solid var(--accent);padding-left:var(--space-4)}.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)}
