@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/source-serif-4-400-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/source-serif-4-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/source-serif-4-400-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/source-serif-4-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#fdfcfa;--ink:#23201c;--body:#3a3630;--muted:#746e65;--line:#ded9d0;--line-soft:#eeeae2;--accent:#d97757;--accent-dark:#b85f43;--accent-soft:#eac6b8;--surface:#fff;--surface-soft:#faf8f4;--surface-inset:#f3f0ea;--surface-callout:#f5f1ea;--surface-results:#f5f2ec;--selection:#f2d8ce;--chart-secondary:#4d5963;--chart-grid:#ebe7df;--chart-selection:#c7c0b6;--accent-tint:#f3ded6;--secondary-tint:#e9ecee;--lane-tint:#f8e9e3;--success-tint:#f6f8f4;--success-line:#b8c8ae;--warning-tint:#faf4f0;--warning-line:#d6b7a4;--tooltip-bg:#27231f;--tooltip-text:#fffaf5;--tooltip-accent:#f09a7b;--serif:"Source Serif 4", Georgia, serif;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Consolas, monospace}html[data-article-theme=light]{color-scheme:light}html[data-article-theme=dark]{color-scheme:dark;--paper:#181a1b;--ink:#f0ece5;--body:#cdc8c0;--muted:#a7a29a;--line:#424444;--line-soft:#323536;--accent:#eea184;--accent-dark:#f0ac93;--accent-soft:#805645;--surface:#202324;--surface-soft:#252829;--surface-inset:#222526;--surface-callout:#292724;--surface-results:#1d2021;--selection:#684939;--chart-secondary:#aebecd;--chart-grid:#383c3e;--chart-selection:#7a7f82;--accent-tint:#44332c;--secondary-tint:#303a42;--lane-tint:#352c28;--success-tint:#222b25;--success-line:#586e54;--warning-tint:#302823;--warning-line:#83624d}*{box-sizing:border-box}html{background:var(--paper);color:var(--ink);scroll-behavior:smooth}body{font-family:var(--serif);text-rendering:optimizelegibility;margin:0;font-size:18px;line-height:1.7}a{color:inherit}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}::selection{background:var(--selection)}main{background:var(--paper);width:100%;margin:0}.reading-column{width:min(760px,100% - 48px);margin:0 auto;padding:72px 0 88px}.intro{align-items:flex-start;gap:26px;margin-bottom:58px;display:flex}.portrait{object-fit:cover;background:var(--line-soft);width:112px;height:112px;box-shadow:0 0 0 1px var(--line);border-radius:50%;flex:none;margin-top:4px}.eyebrow,section>h2{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#847e75;margin:0;font-size:12px;font-weight:400;line-height:1.4}h1{letter-spacing:-.025em;margin:7px 0 8px;font-size:clamp(30px,5vw,36px);font-weight:600;line-height:1.15}.lede{color:var(--body);margin:0;font-size:19px;line-height:1.62}.lede .wave{margin-right:6px;display:inline-block}.contact-links{font-family:var(--mono);flex-wrap:wrap;gap:8px 17px;margin-top:16px;font-size:13px;display:flex}.contact-links a,.inline-link,.text-button{color:var(--accent);border-bottom:1px solid var(--accent-soft);text-decoration:none}.contact-links a:hover,.inline-link:hover,.text-button:hover{border-bottom-color:var(--accent)}section{margin-top:58px}section>h2{margin-bottom:22px}section>p{color:var(--body)}.timeline{position:relative}.timeline:before{content:"";background:var(--line);width:1px;position:absolute;top:12px;bottom:12px;left:110px}.timeline-item{grid-template-columns:103px 15px minmax(0,1fr);margin-bottom:30px;display:grid}.timeline-item:last-child{margin-bottom:0}.timeline-item time{font-family:var(--mono);color:var(--muted);text-align:right;padding-top:6px;padding-right:8px;font-size:12px}.timeline-dot{z-index:1;width:7px;height:7px;box-shadow:0 0 0 4px var(--paper);background:#aaa298;border-radius:50%;margin:9px auto 0;position:relative}.timeline-copy{padding-left:17px}.timeline-copy>p,.project p{color:var(--body);margin:4px 0 0}.company-wrap{display:inline-block;position:relative}.company-link{letter-spacing:-.01em;border-bottom:1px solid var(--line);font-size:21px;font-weight:600;line-height:1.3;text-decoration:none}.company-link:hover{color:var(--accent);border-bottom-color:var(--accent)}.company-card{z-index:10;background:#fff;border:1px solid #e3dfd7;border-radius:6px;width:min(310px,75vw);padding:0;position:absolute;top:calc(100% + 10px);left:0;overflow:hidden;box-shadow:0 14px 34px #23201c24}.company-logo-wrap{border-bottom:1px solid var(--line-soft);background:#fff;place-items:center;height:124px;padding:16px 18px;display:grid;overflow:hidden}.company-logo-wrap img{object-fit:contain;width:auto;max-width:220px;height:auto;max-height:92px;display:block}.company-logo-lockup{justify-content:center;align-items:center;gap:14px;max-width:100%;display:flex}.company-logo-lockup img{width:70px;height:70px}.company-logo-lockup span{color:#292545;max-width:120px;font-family:Arial,Helvetica,sans-serif;font-size:18px;font-weight:700;line-height:1.05}.company-card-copy{padding:13px 16px 15px}.company-card strong{font-size:16px;display:block}.company-card p{color:#5d574e;margin:4px 0 0;font-size:15px;line-height:1.5}.role{color:#5d574e;margin-top:5px;font-size:16px}.timeline-bullets{color:#5d574e;margin:9px 0 0;padding-left:15px;font-size:15.5px;line-height:1.58}.timeline-bullets li{margin-top:5px;padding-left:2px}.timeline-bullets li:first-child{margin-top:0}.timeline-bullets li::marker{color:#b8b1a6}.project-list{gap:28px;display:grid}.project{grid-template-columns:200px minmax(0,1fr);align-items:start;gap:24px;display:grid}.project-image-wrap{background:#ece9e2;border:1px solid #e2ded6;border-radius:5px;height:132px;overflow:hidden}.project img{object-fit:cover;object-position:center;width:100%;height:100%;transition:transform .35s}.project:hover img{transform:scale(1.025)}.project-heading{flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}.project h3{letter-spacing:-.01em;margin:0;font-size:19px;font-weight:600;line-height:1.35}.project-heading span{color:#878077;font:12px/1.4 var(--mono)}.project .inline-link{font-size:15px}.older-projects{margin-top:22px}.text-button{border:0;border-bottom:1px solid var(--accent-soft);font:12.5px/1.6 var(--mono);cursor:pointer;background:0 0;padding:0}.older-project-list{gap:9px;margin-top:15px;padding-left:2px;display:grid}.older-project-list p{color:#5d574e;margin:0;font-size:16px;line-height:1.6}.older-project-list strong{color:var(--body);font-weight:600}.article-list{display:grid}.article-list a{border-radius:4px;grid-template-columns:90px 1fr;gap:18px;margin:0 -10px;padding:9px 10px;text-decoration:none;transition:background-color .15s,color .15s;display:grid}.article-list a:hover{color:var(--accent);background:#f2efe9}.article-list time{color:var(--muted);font:12px/1.8 var(--mono)}.article-list span{line-height:1.5}.writing-list a{grid-template-columns:90px minmax(0,1fr) 104px;align-items:center}.article-cover{border:1px solid var(--line-soft);background:var(--line-soft);border-radius:4px;width:104px;height:58px;overflow:hidden}.article-cover img{object-fit:cover;object-position:center top;width:100%;height:100%;transition:transform .35s}.writing-list a:hover .article-cover img{transform:scale(1.04)}.award-list{border-top:1px solid var(--line-soft)}.award-list article{border-bottom:1px solid var(--line-soft);grid-template-columns:64px 1fr;gap:15px;padding:12px 0;display:grid}.award-list article>strong{color:var(--accent);font:500 12px/1.7 var(--mono)}.award-list a{text-decoration:none}.award-list a:hover{color:var(--accent)}.award-list small{color:var(--muted);margin-top:1px;font-size:14px;display:block}.certificate-list{display:grid}.certificate-list a{border-radius:4px;grid-template-columns:104px 62px minmax(0,1fr);align-items:center;gap:18px;margin:0 -10px;padding:11px 10px;text-decoration:none;transition:color .15s,background-color .15s;display:grid}.certificate-list a:hover{color:var(--accent);background:#f2efe9}.certificate-icon{place-items:center;width:104px;display:grid}.certificate-icon img{object-fit:contain;width:34px;height:34px}.certificate-list time,.publication-row time{color:var(--muted);font:12.5px/1.5 var(--mono)}.certificate-copy{gap:2px;display:grid}.certificate-copy>span{font-size:17px;line-height:1.5}.certificate-copy small,.publication-row small{color:var(--muted);font-size:14.5px;line-height:1.5}.publication-row{border-radius:4px;grid-template-columns:90px minmax(0,1fr);align-items:baseline;gap:18px;margin:0 -10px;padding:9px 10px;text-decoration:none;transition:color .15s,background-color .15s;display:grid}.publication-row:hover{color:var(--accent);background:#f2efe9}.publication-row>span{gap:2px;display:grid}.publication-row>span>span{font-size:17px;line-height:1.5}.education-copy{margin:0}.process-flow{width:min(var(--article-wide-width,980px), calc(100vw - var(--article-visual-gutter,64px)));border:1px solid var(--line);background:var(--surface);border-radius:12px;margin:30px 0 34px 50%;padding:22px;transform:translate(-50%);box-shadow:0 14px 38px #23201c0b}.process-flow figcaption{gap:3px;margin-bottom:17px;display:grid}.process-flow figcaption span{color:var(--accent);font:500 10px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase}.process-flow figcaption strong{color:var(--ink);font-size:18px;line-height:1.35}.process-flow-track{align-items:stretch;gap:8px;display:grid}.process-flow-track-5{grid-template-columns:repeat(4,minmax(0,1fr) 18px) minmax(0,1fr)}.process-flow-track-4{grid-template-columns:repeat(3,minmax(0,1fr) 18px) minmax(0,1fr)}.process-step{border:1px solid var(--line-soft);background:var(--surface-soft);border-radius:7px;grid-template-columns:minmax(0,1fr);gap:10px;min-width:0;min-height:92px;padding:14px 13px;display:grid}.process-step>span{background:var(--accent-tint);width:30px;height:30px;color:var(--accent-dark);font:500 9.5px/1 var(--mono);border-radius:50%;place-items:center;display:grid}.process-step div{min-width:0}.process-step strong{color:var(--ink);font:500 12px/1.4 var(--mono);display:block}.process-step small{color:var(--muted);margin-top:4px;font-size:11.5px;line-height:1.4;display:block}.process-connector{color:var(--accent);font:400 16px/1 var(--mono);text-align:center;align-self:center}.process-flow-latency .process-step>span{background:var(--secondary-tint);color:var(--chart-secondary)}@media (width<=900px){.process-flow-track-5,.process-flow-track-4{grid-template-columns:1fr;gap:7px}.process-step{min-height:74px}.process-connector{transform:rotate(90deg)}}@media (width<=720px){.process-flow{box-shadow:none;border-radius:9px;padding:17px}}footer{border-top:1px solid var(--line);justify-content:space-between;align-items:end;gap:28px;margin-top:66px;padding-top:30px;display:flex}footer h2{margin:6px 0 3px;font-size:26px;line-height:1.25}footer p{color:var(--muted);margin:0;font-size:14px}.email-button{background:var(--ink);color:var(--paper);font:12px/1.5 var(--mono);flex:none;padding:11px 16px;text-decoration:none;transition:background-color .15s}.email-button:hover{background:var(--accent-dark)}@media (width<=680px){.reading-column{width:min(100% - 48px,560px);padding:42px 0 54px}.intro{gap:18px;margin-bottom:48px}.portrait{width:76px;height:76px;margin-top:2px}.eyebrow{letter-spacing:.11em;font-size:10px}.lede{font-size:18px}section{margin-top:50px}.timeline:before{left:5px}.timeline-item{grid-template-columns:12px minmax(0,1fr)}.timeline-item time{text-align:left;grid-column:2;padding:0 0 4px 16px}.timeline-dot{grid-area:1/1/span 2;margin-top:7px}.timeline-copy{grid-column:2;padding-left:16px}.project{grid-template-columns:1fr;gap:13px}.project-image-wrap{aspect-ratio:16/8;height:auto}.writing-list a{grid-template-columns:minmax(0,1fr) 72px;gap:12px}.writing-list time,.writing-list a>span:not(.article-cover){grid-column:1}.article-cover{grid-area:1/2/span 2;width:72px;height:46px}.certificate-list a{grid-template-columns:46px 52px minmax(0,1fr);gap:10px}.certificate-icon{width:46px}footer{flex-direction:column;align-items:start}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important}}
