/* S9m2V7rKa4N8x1QPB6d3W5cHs2F9j0zLY7u4E8nAg1C6q3wTM5b2T9rVX0p8D4kJ */
:root{color-scheme:dark;--bg:#111310;--panel:#171b16;--text:#edf0e5;--muted:#a6ae9e;--quiet:#8d9785;--line:#30372b;--accent:#d5eb9a;--font:'DM Sans',sans-serif;--mono:'IBM Plex Mono',monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:112px}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);line-height:1.65;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}button,a,summary{touch-action:manipulation}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px;border-radius:3px}::selection{background:var(--accent);color:var(--bg)}[hidden]{display:none!important}p,h1,h2,h3,h4{margin:0}svg{display:block}button{border:0}code{font-family:var(--mono)}.shell,.nav-shell{width:min(1120px,calc(100% - 96px));margin-inline:auto}.eyebrow,.career-date,.project-kicker,.lane-label,.mini-label,.detail-index,.architecture-header,.architecture-footer,.art-caption{font-family:var(--mono)}.eyebrow{letter-spacing:.025em;color:var(--muted)}.status-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--accent);flex:none}.skip{position:fixed;top:12px;left:16px;transform:translateY(-150%);padding:8px 16px;background:var(--accent);color:var(--bg);z-index:100}.skip:focus{transform:none}
.site-header{position:sticky;top:0;z-index:20;background:rgba(17,19,16,.94);backdrop-filter:blur(16px);border-bottom:1px solid rgba(48,55,43,.6)}.nav-shell{display:flex;justify-content:space-between;align-items:center;height:84px}.wordmark{font-weight:550;letter-spacing:-1px}.wordmark span{color:var(--accent)}nav{display:flex;align-items:center;gap:30px}nav a{color:var(--muted);min-height:44px;display:flex;align-items:center;position:relative}nav a:hover,nav a[aria-current="location"]{color:var(--accent)}nav .nav-contact{border:1px solid #3c4534;border-radius:6px;padding:0 18px;color:var(--text)}nav .nav-contact:hover,nav .nav-contact[aria-current="location"]{background:#20271b;border-color:#66734e}
.intro{padding-top:91px;padding-bottom:58px}.intro .eyebrow{display:flex;align-items:center;gap:10px}.sheen-label{position:relative}.sheen-glint{position:absolute;inset:0;color:#f6ffe7;clip-path:inset(0 100% 0 0);pointer-events:none}.effects-ready .sheen-glint{animation:name-sheen 1.4s 1.2s ease-in-out 1 both}@keyframes name-sheen{0%{clip-path:inset(0 100% 0 0)}50%{clip-path:inset(0 15% 0 65%)}100%{clip-path:inset(0 0 0 100%)}}.hero-name{line-height:1.08;font-weight:450;letter-spacing:-.055em;margin-top:20px}.hero-name .sheen-label{display:inline-block;max-width:100%}.hero-statement{line-height:1.16;font-weight:400;letter-spacing:-.04em;margin-top:30px}.hero-statement>span{color:var(--accent);white-space:nowrap}.intro-copy{color:var(--muted);max-width:480px;margin-top:28px;line-height:1.65}.hero-actions{display:flex;align-items:center;gap:28px;margin-top:31px}.button{display:inline-flex;align-items:center;justify-content:center;gap:28px;min-height:46px;padding:9px 20px;border-radius:5px;font-weight:500}.button-primary{background:var(--accent);color:#1b2411}.button-primary:hover{background:#e4f8b3}.quiet-link{color:var(--muted);padding-block:12px}.quiet-link:hover{color:var(--text)}.intro-bottom{display:grid;grid-template-columns:1fr 1.6fr auto;align-items:start;gap:32px;border-top:1px solid var(--line);padding-top:27px;margin-top:66px;}.intro-location{font-weight:500}.intro-location span{color:var(--quiet);font-weight:400}.current-roles{display:flex;gap:50px}.current-roles p{line-height:1.6}.current-roles span{display:block;color:var(--quiet);margin-bottom:2px}.focus-note{color:var(--quiet);font-family:var(--mono);line-height:1.75;text-align:right}
.section{padding-block:78px 88px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:42px}.section-heading h2{font-weight:450;line-height:1.15;letter-spacing:-.04em;margin-top:13px}.section-heading>p{color:var(--muted);padding-bottom:2px}.experience{border-top:1px solid var(--line)}.career-entry{display:grid;grid-template-columns:340px 1fr;gap:56px;border-top:1px solid var(--line);padding-block:32px}.career-date{color:var(--quiet);letter-spacing:.015em;margin-bottom:10px}.career-identity h3{font-weight:500;letter-spacing:-.025em}.role{color:var(--muted);margin-top:4px}.career-tag{color:#b8c4a6;display:inline-block;margin-top:17px;padding:4px 9px;border-left:2px solid #65784a;background:#1a2015}.career-content>p{color:var(--muted);max-width:650px}.career-content .career-lede{color:var(--text);letter-spacing:-.02em;margin-bottom:10px;line-height:1.4}.contribution{margin-top:20px}.contribution h4{font-weight:500;color:#d4ddc7;margin-bottom:4px}.contribution p{color:var(--muted);max-width:640px}.inline-status{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);color:#b4c19e;margin-top:17px}.earlier-career{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}summary{list-style:none;cursor:pointer}summary::-webkit-details-marker{display:none}.earlier-career summary{display:flex;align-items:center;justify-content:space-between;min-height:62px;color:var(--muted)}.earlier-career summary:hover{color:var(--accent)}.disclosure-icon{position:relative;width:18px;height:18px}.disclosure-icon:before,.disclosure-icon:after{content:'';position:absolute;background:currentColor;left:4px;top:8px;width:10px;height:1px}.disclosure-icon:after{transform:rotate(90deg)}details[open] .disclosure-icon:after{transform:none}.earlier-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;padding:12px 0 30px}.earlier-grid h3{font-weight:500}.earlier-grid article>p:not(.career-date){color:var(--muted);margin:5px 0}.earlier-grid small{color:var(--quiet);}
.projects-band{background:#141712;border-block:1px solid var(--line)}.projects{padding-bottom:80px}.feature-intro{display:grid;grid-template-columns:340px 1fr;gap:56px;margin-bottom:33px;padding-top:8px}.project-kicker{color:var(--quiet);display:flex;gap:20px;align-items:center}.feature-intro h3{line-height:1.1;letter-spacing:-.065em;font-weight:450;margin-top:15px}.title-dot{color:var(--accent)}.project-lede{line-height:1.35;letter-spacing:-.025em}.feature-copy>p:not(.project-lede){color:var(--muted);margin-top:15px;max-width:590px}.source-link{display:inline-flex;align-items:center;gap:12px;margin-top:18px;color:var(--accent);min-height:38px}.source-link svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.3}.source-link:hover{color:#f4ffdf}.project-art{position:relative;isolation:isolate;--spot-x:50%;--spot-y:50%}.project-art:before{content:'';position:absolute;inset:0;background:radial-gradient(360px circle at var(--spot-x) var(--spot-y),rgba(195,222,133,.055),transparent 75%);z-index:-1;pointer-events:none;border-radius:inherit}.architecture{border:1px solid #37402e;border-radius:10px;background:#11160f;overflow:hidden}.architecture-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 23px;border-bottom:1px solid var(--line);}.architecture-header p{display:flex;align-items:center;gap:10px;color:#d3ddc6}.architecture-label{color:var(--quiet)}#pulse-toggle{background:transparent;color:var(--muted);font-family:var(--mono);border:1px solid #3d4733;border-radius:4px;min-height:32px;padding:6px 10px}#pulse-toggle:hover{color:var(--accent);border-color:#7c8a66}.architecture-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 24px 0}.view-tabs{display:flex;border:1px solid #343e2b;border-radius:5px;padding:3px;gap:3px}.view-tabs button{background:transparent;padding:7px 12px;font-family:var(--mono);border-radius:3px;color:var(--quiet);min-height:34px}.view-tabs button[aria-selected=true]{background:#2a3421;color:#e2eecb}.view-tabs button:hover{color:var(--text)}.explore-hint{font-family:var(--mono);color:var(--quiet)}.graph-panel{padding:30px 26px 0}.diagram-surface{position:relative;isolation:isolate}.build-graph{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:34px;padding-bottom:35px}.lane-label{color:#66765a;margin-bottom:12px;display:flex;gap:9px;align-items:center}.lane-label span{color:#aebb9f}.graph-node{display:flex;flex-direction:column;align-items:flex-start;position:relative;width:100%;padding:17px 16px;background:#1a2116;border:1px solid #3a462f;border-radius:6px;text-align:left;min-height:123px}.graph-node:hover,.backend-node:hover{border-color:#849664;background:#222c1b}.graph-node[aria-pressed=true],.backend-node[aria-pressed=true]{background:#26311d;border-color:#91a86c}.graph-node strong{font-weight:500;margin-top:14px;line-height:1.25}.graph-node small{color:var(--muted);margin-top:5px;line-height:1.3}.node-symbol{width:22px;height:22px;fill:none;stroke:#c5d4b0;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round}.node-support{margin:17px 0 0 10px;padding:0 0 0 13px;border-left:1px solid #39452e;display:flex;flex-direction:column;gap:8px}.mini-label{color:var(--quiet);letter-spacing:.02em;line-height:1.5}.node-support code{color:#c4cfb4}.evidence-pair{display:flex;gap:6px}.evidence-pair span{border:1px solid #303c27;font-family:var(--mono);color:var(--muted);padding:3px 5px;border-radius:3px}.artifact-note{color:var(--quiet);line-height:1.4}.review-chip{color:#bdcda7}.review-chip>span{color:var(--accent);margin-right:4px}.repair-rail{grid-column:2/4;display:flex;align-items:center;gap:12px;color:#83966b;font-family:var(--mono);margin-top:-3px}.repair-line{height:1px;background:#536442;flex:1;position:relative;min-width:20px}.repair-line:before{content:'';position:absolute;left:0;top:-3px;width:6px;height:6px;border:solid #7a8d62;border-width:0 0 1px 1px;transform:rotate(45deg)}.wires{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:-1}.wire{fill:none;stroke:#536541;stroke-width:1}.wire-dot{fill:#adc784}.wire-pulse{fill:none;stroke:#d5eb9a;stroke-width:1.5;stroke-linecap:round;opacity:0;animation:none}.wire-feedback{stroke:#566541;stroke-dasharray:3 4;fill:none;stroke-width:1;opacity:.8}.stage-detail{display:grid;grid-template-columns:180px 1fr;gap:30px;padding:24px 26px;background:rgba(36,46,27,.35);border-top:1px solid #33402a;min-height:136px}.detail-index{color:var(--accent);padding-top:2px}.stage-detail h4{font-weight:450;letter-spacing:-.02em;line-height:1.4}.stage-detail p{color:var(--muted);line-height:1.7;max-width:720px;margin-top:6px}.architecture-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:13px 24px;border-top:1px solid #293321;color:var(--quiet)}.architecture-footer a{color:#bccaa9;min-height:28px;display:inline-flex;align-items:center;gap:10px}.architecture-footer a:hover{color:var(--accent)}.runtime-graph{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:65px;padding:0 0 29px;align-items:start}.runtime-input,.runtime-output{padding-top:38px}.runtime-ladder{display:flex;flex-direction:column;gap:7px}.runtime-ladder .lane-label{margin-bottom:3px}.backend-node{display:grid;grid-template-columns:20px 1fr;column-gap:9px;text-align:left;border:1px solid #38452e;background:#192115;border-radius:4px;padding:9px 12px;position:relative;min-height:55px}.backend-node>span{grid-row:1/3;font-family:var(--mono);color:#7e9366;margin-top:3px}.backend-node strong{font-family:var(--mono);font-weight:400;color:#d1ddc0}.backend-node small{color:var(--quiet);margin-top:2px}.node-code{font-family:var(--mono);color:#bdcf9e}.runtime-cache,.runtime-caveat{margin-top:21px;display:flex;flex-direction:column;gap:8px}.runtime-cache code{color:#b9c6a8}.runtime-cache>span:last-child,.runtime-caveat p{line-height:1.6;color:var(--quiet);max-width:200px}
.secondary-projects{display:grid;grid-template-columns:1fr 1fr;gap:44px;margin-top:64px}.compact-project .project-kicker{justify-content:space-between;margin-bottom:14px}.compact-project .project-art{height:230px;border:1px solid #343d2d;border-radius:7px;background:#181e14;overflow:hidden}.compact-project h3{font-weight:450;letter-spacing:-.035em;line-height:1.2;margin-top:22px;min-height:67px}.compact-project>p:not(.project-kicker){line-height:1.7;color:var(--muted);margin-top:13px;max-width:450px;min-height:72px}.project-links{display:flex;gap:24px;margin-top:14px;color:#d6e1c7}.project-links a{display:inline-flex;gap:10px;align-items:center;min-height:40px}.project-links a:hover{color:var(--accent)}.art-caption{position:absolute;bottom:0;inset-inline:0;display:flex;justify-content:space-between;color:var(--quiet);padding:12px 16px;border-top:1px solid #303a27;background:rgba(19,25,15,.7)}.render-grid{height:190px;position:relative;background-image:linear-gradient(#a5bf7910 1px,transparent 1px),linear-gradient(90deg,#a5bf7910 1px,transparent 1px);background-size:28px 28px}.gaze-ring{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);border:1px solid #596d40;border-radius:50%}.ring-outer{width:146px;height:146px;border-style:dashed;opacity:.6}.ring-inner{width:84px;height:84px;background:radial-gradient(#c8e79718,transparent);border-color:#94ac6d}.gaze-point{position:absolute;left:50%;top:48%;width:6px;height:6px;margin:-3px;background:var(--accent);border-radius:50%}.gaze-axis{position:absolute;background:#819a5b}.axis-x{width:22px;height:1px;top:48%;left:calc(50% - 11px)}.axis-y{width:1px;height:22px;left:50%;top:calc(48% - 11px)}.gaze-label{position:absolute;left:calc(50% + 20px);top:calc(48% + 20px);font-family:var(--mono);color:#bdcda6}.aichart-art{display:flex;flex-direction:column}.chart-toolbar{display:flex;align-items:center;gap:10px;padding:17px 18px 0;font-family:var(--mono);color:#aebc9d;white-space:nowrap}.chart-input{border:1px solid #405132;border-radius:4px;padding:3px 7px;color:#c7dbac}.chart-transform{color:#8ca56c}.chart-valid{color:#bfd791;margin-left:auto}.chart-drawing{width:100%;min-height:0;flex:1;margin:8px 0 42px;overflow:visible}.chart-grid{stroke:#8ba76626;stroke-width:1;stroke-dasharray:2 5;fill:none}.chart-baseline{stroke:#51663b;stroke-width:1;fill:none}.chart-bars{fill:url(#chart-bar-fill)}.chart-trend{stroke:#d5eb9a;stroke-width:1.5;fill:none}.chart-points{fill:#d5eb9a;stroke:#182112;stroke-width:2}.more-projects{margin-top:58px;border-top:1px solid var(--line)}.experiments-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:23px 0 15px}.experiments-heading h3{font-family:var(--mono);color:var(--muted)}.experiments-heading>span{font-family:var(--mono);color:var(--quiet)}.experiment{border-bottom:1px solid var(--line)}.experiment>summary{display:grid;grid-template-columns:180px 1fr 160px 18px;gap:20px;align-items:center;min-height:78px;padding:19px 0}.experiment>summary strong{font-weight:450;letter-spacing:-.025em}.experiment-subtitle{color:var(--muted)}.experiment-meta{font-family:var(--mono);color:var(--quiet);text-align:right}.experiment>summary:hover strong,.experiment[open]>summary strong{color:var(--accent)}.experiment>summary .disclosure-icon{color:var(--quiet)}.experiment-detail{padding:10px 0 30px 200px}.experiment-detail.with-recording{display:grid;grid-template-columns:1fr 1.25fr;gap:38px;padding-left:0;align-items:start;padding-top:16px}.experiment-copy{max-width:690px}.experiment-copy .experiment-label{font-family:var(--mono);color:var(--quiet);margin-bottom:13px}.experiment-copy h4{line-height:1.35;font-weight:450;letter-spacing:-.025em;margin-bottom:13px}.experiment-copy>p{color:var(--muted);line-height:1.75}.experiment-copy .experiment-award{display:inline-block;color:#cfdfa9;border-left:2px solid #8a9c68;padding:3px 0 3px 12px;margin-top:19px}.experiment-copy .experiment-note{line-height:1.7;color:var(--quiet);margin-top:10px}.experiment-detail .project-links{margin-top:15px;gap:24px;flex-wrap:wrap}.demo-recording{margin:0;min-width:0}.demo-recording video{display:block;width:100%;height:auto;aspect-ratio:16/9;border:1px solid #3d4832;border-radius:6px;background:#0e120c}.demo-recording figcaption{font-family:var(--mono);line-height:1.7;color:var(--quiet);margin-top:10px}.demo-recording video:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.education{display:grid;grid-template-columns:340px 1fr;gap:56px;padding-block:84px}.education h2{font-weight:450;letter-spacing:-.035em;margin-top:14px}.education-list{display:grid;grid-template-columns:1fr 1fr;gap:30px}.education h3{font-weight:450;letter-spacing:-.02em}.education article>p:not(.career-date){color:var(--muted);margin-top:5px}.education small{display:block;color:var(--quiet);margin-top:9px}.contact{border-top:1px solid var(--line);padding-block:70px 76px}.contact-content{display:grid;grid-template-columns:1fr 1fr;gap:64px;margin-top:23px;align-items:center}.contact h2{font-weight:450;letter-spacing:-.045em;line-height:1.15}.contact h2 span{color:var(--accent)}.contact-content p{color:var(--muted);max-width:400px}.email-link{display:inline-block;color:var(--text);letter-spacing:-.02em;margin-top:20px;border-bottom:1px solid #5a6846;padding-bottom:4px}.email-link:hover{color:var(--accent)}.social-links{display:flex;gap:24px;color:var(--muted);margin-top:17px}.social-links a{padding-block:8px}.social-links a:hover{color:var(--accent)}footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-block:25px 30px;font-family:var(--mono);color:var(--quiet)}footer a{color:var(--muted)}footer a:hover{color:var(--accent)}
.no-script-note{padding:20px 24px;color:var(--muted);}.diagram-surface .stage-detail{grid-column:1/-1;margin-top:16px;border:1px solid #3a482d;border-radius:5px;padding:17px 14px;min-height:0}.runtime-ladder>.stage-detail{margin:7px 0 13px}
@media(min-width:1500px){.shell,.nav-shell{width:min(1180px,calc(100% - 120px))}}
@media(max-width:1000px){.shell,.nav-shell{width:calc(100% - 64px)}.career-entry,.feature-intro,.education{grid-template-columns:280px 1fr;gap:36px}.current-roles{gap:25px}.intro-bottom{grid-template-columns:1fr 2fr}.focus-note{display:none}.build-graph{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}.repair-rail{grid-column:1/-1}.graph-panel{padding:26px 20px 0}.graph-node{padding:15px 11px}.node-support{margin-left:3px;padding-left:10px}.evidence-pair{flex-wrap:wrap}.runtime-graph{gap:35px}.stage-detail{grid-template-columns:140px 1fr}.education-list{grid-template-columns:1fr}.contact-content{gap:35px}}
@media(max-width:760px){html{scroll-padding-top:100px}.shell,.nav-shell{width:calc(100% - 40px)}.nav-shell{height:72px}nav{gap:19px}nav .nav-contact{padding:0 12px;min-height:38px}.intro{padding-top:65px;padding-bottom:41px}.hero-statement{margin-top:25px}.intro-copy{max-width:390px;margin-top:23px}.hero-actions{margin-top:25px;gap:23px}.intro-bottom{margin-top:48px;gap:24px;padding-top:23px;grid-template-columns:1fr}.intro-location{display:none}.current-roles{gap:38px}.section{padding-block:58px 60px}.section-heading{align-items:flex-start;gap:20px;margin-bottom:30px}.section-heading>p{padding-top:35px;max-width:180px}.career-entry,.feature-intro{grid-template-columns:1fr;gap:23px;padding-block:28px}.career-tag{margin-top:12px}.career-date{margin-bottom:7px}.contribution{margin-top:17px}.earlier-grid{grid-template-columns:1fr;gap:24px}.feature-intro{padding-top:0;gap:24px;margin-bottom:26px}.feature-intro h3{margin-top:10px}.architecture-header{padding:14px 16px}.architecture-label{display:none}.architecture-toolbar{padding:16px 16px 0}.explore-hint{display:none}.view-tabs{width:100%}.view-tabs button{flex:1;padding:8px;}.graph-panel{padding:24px 16px 0}.build-graph{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 25px;padding-bottom:25px}.graph-node{padding:16px 13px;min-height:123px}.node-support{margin-top:13px}.repair-rail{grid-column:1/-1;gap:8px;margin-top:-9px}.stage-detail{grid-template-columns:1fr;gap:10px;padding:21px 19px;min-height:184px}.architecture-footer{padding:12px 16px;flex-wrap:wrap;gap:3px}.runtime-graph{grid-template-columns:1fr;gap:28px;padding-bottom:26px}.runtime-input,.runtime-output{padding-top:0;display:grid;grid-template-columns:1.1fr 1fr;column-gap:20px}.runtime-input .lane-label,.runtime-output .lane-label{grid-column:1/-1}.runtime-output{display:block}.runtime-output .runtime-caveat{margin-top:16px}.runtime-cache,.runtime-caveat{margin-top:8px}.runtime-ladder{margin-left:20px;padding-left:20px;border-left:1px solid #415331}.backend-node{grid-template-columns:20px 1fr 1fr;padding:12px;align-items:center;min-height:51px}.backend-node>span{grid-row:auto;margin-top:0}.backend-node small{margin-top:0;text-align:right;line-height:1.3}.secondary-projects{gap:30px;margin-top:45px}.compact-project .project-art{height:200px}.render-grid{height:160px}.chart-toolbar{padding:13px 12px 0;gap:7px}.chart-valid{display:none}.compact-project h3{min-height:58px}.compact-project>p:not(.project-kicker){min-height:90px}.project-links{gap:10px;flex-wrap:wrap;margin-top:9px}.project-links a{gap:6px}.art-caption{padding:11px 12px;gap:8px}.more-projects{margin-top:40px}.experiment>summary{grid-template-columns:160px 1fr 18px;gap:15px}.experiment-meta{display:none}.experiment-detail{padding-left:0}.experiment-detail.with-recording{grid-template-columns:1fr;gap:24px}.demo-recording{max-width:580px}.education{grid-template-columns:1fr;gap:30px;padding-block:57px}.education-list{grid-template-columns:1fr 1fr}.contact{padding-block:55px}.contact-content{grid-template-columns:1fr;gap:25px}.contact-content p{max-width:440px}footer>span:nth-child(2){display:none}}
@media(max-width:480px){.shell,.nav-shell{width:calc(100% - 36px)}nav{gap:15px}nav .nav-contact{padding:0 10px}.intro{padding-top:52px}.hero-name{line-height:1.1;margin-top:22px}.hero-statement{margin-top:25px}.hero-statement br{display:none}.intro-copy{max-width:310px}.current-roles{gap:25px}.section-heading{display:block}.section-heading>p{padding-top:15px;max-width:none}.section-heading>p br{display:none}.architecture-header{padding:12px 13px}#pulse-toggle{padding:6px 8px}.graph-panel{padding:22px 14px 0}.build-graph{grid-template-columns:1fr;gap:31px}.graph-lane{display:grid;grid-template-columns:1.15fr 1fr;gap:0 14px}.lane-label{grid-column:1/-1;margin-bottom:9px}.graph-node{min-height:119px;padding:14px 12px}.node-support{margin-top:10px;padding-left:12px}.repair-rail{margin-top:0;gap:8px;flex-wrap:wrap}.repair-rail>span:last-child{max-width:130px}.runtime-input,.runtime-output{column-gap:16px}.runtime-ladder{margin-left:10px;padding-left:16px}.backend-node{grid-template-columns:16px 1fr;padding:10px}.backend-node>span{grid-row:1/3}.backend-node small{text-align:left;grid-column:2;margin-top:3px}.secondary-projects{grid-template-columns:1fr;gap:39px}.compact-project .project-art{height:219px}.render-grid{height:179px}.chart-toolbar{padding:15px 14px 0;gap:7px}.chart-valid{display:inline}.compact-project h3{min-height:0;margin-top:20px}.compact-project h3 br{display:none}.compact-project>p:not(.project-kicker){min-height:0;margin-top:12px}.project-links{gap:25px}.experiments-heading{align-items:flex-start;gap:12px}.experiments-heading>span{max-width:125px;text-align:right;}.experiment>summary{grid-template-columns:1fr 18px;gap:4px 16px;padding:19px 0}.experiment-subtitle{grid-column:1;}.experiment>summary .disclosure-icon{grid-column:2;grid-row:1/3}.experiment-detail{padding:5px 0 26px}.education-list{grid-template-columns:1fr;gap:27px}.button{padding:9px 16px;gap:25px}.hero-actions{gap:22px}}
@media(max-width:350px){.shell,.nav-shell{width:calc(100% - 30px)}nav{gap:11px}nav .nav-contact{padding:0 8px}.current-roles{gap:18px}.graph-panel{padding-inline:11px}.graph-lane{gap:0 10px}.graph-node{padding:13px 10px}.node-support{padding-left:8px;margin-left:0}.view-tabs button{padding:8px 5px}.stage-detail{padding-inline:15px}.chart-valid{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.project-art:before{background:radial-gradient(300px circle at 50% 50%,rgba(195,222,133,.035),transparent 75%)}.wire-pulse{display:none}.sheen-glint{display:none}}

/* Type roles: every size belongs to this scale; only display and section headings resize. */
:root{
  --type-display:clamp(2.75rem,5.6vw,4.75rem);
  --type-section:2.75rem;
  --type-identity:1.75rem;
  --type-title:1.5rem;
  --type-subtitle:1.25rem;
  --type-subheading:1.125rem;
  --type-body:1rem;
  --type-ui:.875rem;
  --type-meta:.75rem;
}
body{font-size:var(--type-body)}
.hero-statement{font-size:var(--type-display);line-height:1.08;font-weight:400;letter-spacing:-.045em}
.section-heading h2,.education h2,.contact h2{font-size:var(--type-section);line-height:1.15;font-weight:450;letter-spacing:-.04em}
.hero-name{font-size:var(--type-identity);line-height:1.2;font-weight:500;letter-spacing:-.035em}
.wordmark,.career-identity h3,.feature-intro h3,.compact-project h3,.education h3,.earlier-grid h3,.experiment>summary strong{font-size:var(--type-title);line-height:1.25;font-weight:500;letter-spacing:-.025em}
.career-content .career-lede,.project-lede,.experiment-copy h4,.email-link{font-size:var(--type-subtitle);line-height:1.45;font-weight:400;letter-spacing:-.02em}
.intro-copy,.contribution h4,.stage-detail h4{font-size:var(--type-subheading);line-height:1.5}
.contribution h4,.stage-detail h4{font-weight:500;letter-spacing:-.015em}
.section-heading>p,.career-content>p:not(.career-lede),.contribution p,.feature-copy>p:not(.project-lede),.compact-project>p:not(.project-kicker),.experiment-copy>p,.contact-content p,.earlier-grid article>p:not(.career-date),.education article>p:not(.career-date),.stage-detail p,.intro-location,.current-roles p,.no-script-note{font-size:var(--type-body);line-height:1.65}
nav a,.button,.quiet-link,.role,.career-tag,.inline-status,.current-roles span,.earlier-career summary,.source-link,.project-links,.social-links,.experiment-subtitle,.experiment-copy .experiment-note,.experiment-copy .experiment-award,.graph-node strong,.architecture-header,.view-tabs button,#pulse-toggle{font-size:var(--type-ui);line-height:1.5}
small,.eyebrow,.career-date,.project-kicker,.focus-note,.lane-label,.mini-label,.detail-index,.explore-hint,.node-support code,.evidence-pair span,.artifact-note,.review-chip,.repair-rail,.graph-node small,.backend-node>span,.backend-node strong,.backend-node small,.runtime-cache code,.runtime-cache>span:last-child,.runtime-caveat p,.architecture-footer,.architecture-footer>span,.art-caption,.gaze-label,.chart-toolbar,.experiments-heading h3,.experiments-heading>span,.experiment-meta,.experiment-copy .experiment-label,.demo-recording figcaption,.education small,.earlier-grid small,footer{font-size:var(--type-meta);line-height:1.6}
.node-code{font-size:var(--type-title)}
/* Identity is separate from the proposition, which is the page's only H1. */
.intro{padding-top:45px}
.intro-identity{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:24px;margin-bottom:38px;border-bottom:1px solid var(--line)}
.hero-name,.hero-statement{margin-top:0}
.intro-identity .eyebrow{font-family:var(--font);font-size:var(--type-ui)}
.intro-copy{max-width:540px;margin-top:28px}
.intro-bottom{grid-template-columns:1fr 1.6fr auto;margin-top:56px}
.intro-location{display:block}
.intro-location span{color:var(--muted)}
.current-roles span{color:var(--muted);margin-bottom:4px}
.career-outcome{color:var(--muted);border-color:#67705e;background:#1a1e17}
.career-content>p,.contribution p{max-width:680px}
.career-entry,.feature-intro,.education{grid-template-columns:300px minmax(0,1fr);gap:56px}
.feature-intro h3{margin-top:14px}
.compact-project h3{min-height:60px}
.compact-project>p:not(.project-kicker){min-height:80px}
.experiment>summary{grid-template-columns:190px 1fr 180px 18px}
.experiment-detail{padding-left:210px}
.experiment-detail.with-recording{padding-left:0}
.experiments-heading h3{font-family:var(--font);font-size:var(--type-subheading);font-weight:500;color:var(--text)}
.architecture-header p{flex-wrap:wrap}
.architecture-toolbar{align-items:flex-start}
.view-tabs button,#pulse-toggle{min-height:40px}
.architecture-footer>div{min-width:0}
#pulse-caption{color:var(--muted);margin-bottom:5px}
.graph-node{min-height:138px}
.graph-node strong{margin-top:12px}
.art-caption{padding:10px 12px;gap:10px}
.chart-drawing{margin-bottom:52px}
.chart-toolbar{flex-wrap:wrap;white-space:normal}
.chart-input{white-space:nowrap}
.graph-lane,.runtime-input,.runtime-output,.node-support{min-width:0}
.runtime-ladder .lane-label{flex-wrap:wrap}
.runtime-caveat p{max-width:none}
.repair-rail{flex-wrap:wrap}
.diagram-surface .stage-detail h4{font-size:var(--type-subheading)}
.diagram-surface .stage-detail p{font-size:var(--type-body)}
.diagram-surface .detail-index{font-size:var(--type-meta)}
@media(max-width:1000px){
  :root{--type-section:2.375rem}
  .intro-bottom{grid-template-columns:1fr 2fr}
  .career-entry,.feature-intro,.education{grid-template-columns:240px minmax(0,1fr);gap:36px}
  .runtime-graph{grid-template-columns:1fr 1.65fr 1fr;gap:26px}
  .runtime-ladder .backend-node{padding-inline:10px}
  .art-caption{flex-wrap:wrap;gap:0 10px}
}
@media(max-width:760px){
  :root{--type-section:2.125rem}
  .intro{padding-top:34px}
  .intro-identity{margin-bottom:32px;flex-wrap:wrap;gap:10px}
  .intro-bottom{grid-template-columns:1fr;gap:24px;margin-top:42px}
  .current-roles{flex-wrap:wrap;gap:24px 36px}
  .section-heading{display:block}
  .section-heading>p{padding-top:16px;max-width:440px}
  .section-heading>p br{display:none}
  .career-entry,.feature-intro,.education{grid-template-columns:1fr;gap:24px}
  .experiment>summary{grid-template-columns:180px 1fr 18px}
  .experiment-detail{padding-left:0}
  .runtime-graph{grid-template-columns:1fr;gap:28px}
  .compact-project h3{min-height:60px}
  .chart-valid{display:none}
  .view-tabs button{padding-inline:7px}
}
@media(max-width:480px){
  :root{--type-display:clamp(2.375rem,10.9vw,3rem)}
  .nav-shell{height:auto;min-height:72px;flex-wrap:wrap;gap:2px;padding-block:12px}
  nav{width:100%;justify-content:space-between}
  .intro-identity{display:block;padding-bottom:21px}
  .intro-identity .eyebrow{margin-top:10px}
  .hero-statement br{display:none}
  .intro-copy{max-width:none}
  .intro-bottom{gap:22px}
  .current-roles{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .graph-lane{grid-template-columns:1.05fr 1fr;gap:0 12px}
  .graph-node{padding:13px 10px;min-height:142px}
  .node-support{margin-left:0;padding-left:8px}
  .evidence-pair{gap:4px}
  .evidence-pair span{padding:2px 3px}
  .view-tabs button{font-family:var(--font)}
  .architecture-header{gap:10px}
  .architecture-header p{font-size:var(--type-ui)}
  #pulse-toggle{white-space:nowrap;padding-inline:7px}
  .runtime-input{grid-template-columns:1fr 1fr;gap:0 14px}
  .runtime-cache code{overflow-wrap:anywhere}
  .compact-project h3,.compact-project>p:not(.project-kicker){min-height:0}
  .experiment>summary{grid-template-columns:1fr 18px;gap:6px 16px}
  .experiments-heading{flex-wrap:wrap;gap:4px}
  .experiments-heading>span{max-width:none;text-align:left}
  .chart-valid{display:inline}
  .art-caption{line-height:1.4}
  .contact h2 br{display:none}
}
@media(max-width:350px){
  nav{gap:18px}
  .hero-actions{gap:18px}
  .button{gap:16px;padding-inline:14px}
  .graph-lane,.runtime-input{grid-template-columns:1fr}
  .graph-node{min-height:0}
  .node-support{margin-top:14px}
  .runtime-cache{margin-top:18px}
  .chart-valid{display:none}
}
