@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-ext-wght-normal.DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-wght-normal.BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-vietnamese-wght-normal.6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-ext-wght-normal.DC-KSUi6.woff2)format("woff2-variations");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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.woff2)format("woff2-variations");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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-ext-wght-normal.X_5orZeX.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-symbols2-wght-normal.CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-vietnamese-wght-normal.DadHysG0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-ext-wght-normal.Bwz-egvJ.woff2)format("woff2-variations");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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-wght-normal.XN7g48iV.woff2)format("woff2-variations");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:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-vietnamese-opsz-normal.BjhtXyW2.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-ext-opsz-normal.BQn1nviT.woff2)format("woff2-variations");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:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-opsz-normal.s-izfB6B.woff2)format("woff2-variations");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:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-vietnamese-opsz-italic.DTr-ymY4.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-ext-opsz-italic.CSPGnFdO.woff2)format("woff2-variations");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:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-opsz-italic.kJKFiXvB.woff2)format("woff2-variations");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{color-scheme:light;--paper:#f7f5f0;--surface:#fdfcf9;--ink:#17161a;--muted:#5d5a63;--hairline:#e3dfd6;--accent:#a3155f;--header-bg:#f7f5f08c;--font-body:"Geist Variable", Arial, sans-serif;--font-display:"Newsreader Variable", Georgia, serif;--font-mono:"Geist Mono Variable", Consolas, monospace;--text-small:.8125rem;--text-base:1.0625rem;--text-lede:clamp(1.125rem, 1rem + .5vw, 1.375rem);--text-display:clamp(3.125rem, 1.9rem + 4.5vw, 5.5rem);--text-heading:clamp(2.25rem, 1.6rem + 2vw, 3.5rem);--text-project:clamp(2rem, 1.5rem + 1.5vw, 2.75rem);--content-width:80rem;--gutter:clamp(1rem, 4vw, 3rem);--section-space:clamp(4rem, 7vw, 6.5rem);--radius:6px;--radius-lg:24px;--spotlight-strength:6%;--glow-opacity:.07;--media-shadow:0 20px 50px -20px #00000040;--header-offset:6.5rem}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--paper:#0f0e11;--surface:#17161a;--ink:#ecebef;--muted:#a19ea8;--hairline:#2a282e;--accent:#ff6fb5;--header-bg:#0f0e1173;--spotlight-strength:10%;--glow-opacity:.12;--media-shadow:none}}:root[data-theme=dark]{color-scheme:dark;--paper:#0f0e11;--surface:#17161a;--ink:#ecebef;--muted:#a19ea8;--hairline:#2a282e;--accent:#ff6fb5;--header-bg:#0f0e1173;--spotlight-strength:10%;--glow-opacity:.12;--media-shadow:none}@media (width<=760px){:root{--radius-lg:16px}}*,:before,:after{box-sizing:border-box}html{scroll-padding-top:var(--header-offset);-webkit-text-size-adjust:100%}html,body{overflow-x:clip}body{isolation:isolate;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:var(--text-base);-webkit-font-smoothing:antialiased;margin:0;line-height:1.65;position:relative}h1,h2,h3,p,ul,ol,dl,dd{margin:0}h1,h2,h3{font-weight:500}button,input,textarea{font:inherit}button{color:inherit;cursor:pointer}a{color:var(--accent);text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}button,a{-webkit-tap-highlight-color:transparent}a,button{transition:color .16s,background-color .16s,border-color .16s}:focus-visible{outline:2px solid var(--accent);outline-offset:5px;border-radius:2px}[tabindex="-1"]:focus:not(:focus-visible){outline:none}[hidden]{display:none!important}::selection{background:var(--accent);color:var(--paper)}.container{width:min(var(--content-width), calc(100% - var(--gutter) * 2));margin-inline:auto}.mono,.section-label{font-family:var(--font-mono)}.meta,.stack{color:var(--muted);font-size:var(--text-small);line-height:1.7}.section-label{letter-spacing:.055em;text-transform:uppercase;color:var(--muted);font-size:.75rem;font-weight:450;line-height:1.6}.section{padding-block:var(--section-space);border-top:1px solid var(--hairline)}.hero+.section{border-top:0}.section>.section-label{margin-bottom:2rem}.skip-link{z-index:100;background:var(--surface);border:1px solid var(--accent);padding:.7rem 1rem;position:fixed;top:1rem;left:1rem;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:10;border-bottom:1px solid color-mix(in srgb, var(--ink) 10%, transparent);background:var(--header-bg);backdrop-filter:blur(20px)saturate(160%);transition:background-color .25s,border-color .25s;position:sticky;top:0}.js .site-header:not(.is-scrolled){backdrop-filter:none;background:0 0;border-bottom-color:#0000}.header-inner{align-items:center;gap:2rem;min-height:5rem;display:flex}.wordmark{color:var(--ink);margin-right:auto;font-size:.875rem;font-weight:550;text-decoration:none}.primary-nav{align-items:center;gap:1.5rem;display:flex}.primary-nav a{color:var(--muted);padding-block:.7rem;font-size:.8125rem;text-decoration:none;position:relative}.primary-nav a:hover,.primary-nav a[aria-current]{color:var(--accent)}.primary-nav a[aria-current]:after{content:"";background:currentColor;height:1px;position:absolute;inset:auto 0 .25rem}.header-actions{align-items:center;gap:.85rem;display:flex}.theme-toggle{color:var(--muted);background:0 0;border:0;padding:.6rem}.theme-toggle:hover{color:var(--accent)}.icon{fill:none;stroke:currentColor;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;width:1.125rem;height:1.125rem}.theme-icon{display:none}:root[data-theme=light] .theme-icon-light,:root[data-theme=dark] .theme-icon-dark{display:block}.button{border:1px solid var(--muted);border-radius:var(--radius);min-height:2.875rem;color:var(--ink);justify-content:center;align-items:center;gap:1rem;padding:.6rem 1rem;font-size:.875rem;font-weight:500;line-height:1.5;text-decoration:none;display:inline-flex}.button:hover{background:var(--surface);border-color:var(--ink)}.button-primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.button-primary:hover{color:var(--paper);background:var(--muted);border-color:var(--muted)}.button-small{border-color:var(--hairline);min-height:2.375rem;padding:.45rem .75rem;font-size:.75rem}.hero-intro{padding-block:clamp(3.5rem,6vw,5.5rem) clamp(3rem,5vw,4.5rem)}.hero-status{color:var(--muted);align-items:baseline;gap:.7rem;margin-bottom:1.75rem;font-size:.75rem;line-height:1.8;display:flex}.status-dot{background:var(--accent);border-radius:50%;flex:0 0 6px;align-self:flex-start;width:6px;height:6px;margin-top:.5rem;animation:3s ease-in-out infinite status-pulse}h1{font-family:var(--font-display);font-optical-sizing:auto;font-size:var(--text-display);letter-spacing:-.035em;text-wrap:balance;font-weight:400;line-height:1.05}.hero h1{max-width:11ch;font-size:clamp(3.5rem,8vw,8rem);line-height:.95}.hero h1 em{font-weight:400}.hero-title{color:var(--muted);font-size:var(--text-lede);margin-top:1.5rem}.hero-actions{flex-wrap:wrap;align-items:center;gap:1.5rem 2rem;margin-top:1.75rem;display:flex}.button-group,.social-links{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.social-links{gap:1.25rem}.social-links a{color:var(--muted);padding-block:.35rem;font-size:.8125rem;text-decoration:none}.social-links a:hover{color:var(--accent);text-decoration:underline}.proof-strip{border-top:1px solid var(--hairline);grid-template-columns:repeat(4,minmax(0,1fr));padding-block:1.75rem;display:grid}.proof-strip>div{border-left:1px solid var(--hairline);flex-direction:column-reverse;justify-content:end;gap:.5rem;padding-inline:1.5rem;display:flex}.proof-strip>div:first-child{border:0;padding-left:0}.proof-strip>div:last-child{padding-right:0}.proof-strip dd{font-family:var(--font-mono);letter-spacing:-.06em;white-space:nowrap;font-size:clamp(1rem,1.6vw,1.375rem);font-weight:450}.proof-strip dt{color:var(--muted);max-width:25ch;font-size:.75rem;line-height:1.6}.work-section{padding-bottom:0}.work-row{color:inherit;border-top:1px solid var(--hairline);grid-template-columns:2.5rem minmax(0,1.65fr) minmax(0,1fr);gap:1.5rem;padding-block:2.25rem;text-decoration:none;display:grid}.work-index{color:var(--muted);padding-top:.6rem;font-size:.75rem}.work-description h3{font-family:var(--font-display);font-optical-sizing:auto;font-size:var(--text-project);letter-spacing:-.025em;font-weight:400;line-height:1.15}.work-description h3 span{text-underline-offset:.12em;text-decoration-line:underline;text-decoration-color:#0000;text-decoration-thickness:1px}.work-description p{color:var(--muted);max-width:52ch;margin-top:.75rem;font-size:.9375rem}.work-meta{align-self:start;padding-top:.35rem}.context{margin-bottom:.6rem;font-size:.6875rem}.work-meta .stack{font-size:.75rem}.read-link{color:var(--accent);align-items:center;gap:.65rem;margin-top:1.25rem;font-size:.8125rem;display:inline-flex}.work-row:hover .work-description h3 span,.work-row:focus-visible .work-description h3 span{text-decoration-color:currentColor}.experience-section{grid-template-columns:1fr 2fr;gap:4rem;display:grid}.section-sidebar{top:var(--header-offset);align-self:start;position:sticky}.timeline{min-width:0}.timeline-item{border-left:1px solid var(--hairline);padding:0 0 2.75rem 1.75rem;position:relative}.timeline-item:before{content:"";background:var(--muted);border-radius:50%;width:5px;height:5px;position:absolute;top:.55rem;left:-3px}.timeline-item h3{font-size:1.1875rem;font-weight:550;line-height:1.4}.timeline-item .meta{margin-bottom:.6rem}.role{color:var(--muted);margin-block:.3rem .85rem;font-size:.9375rem}.timeline-item>p:not(.meta):not(.role),.impact-list{font-size:.9375rem}.promotion-list{grid-template-columns:repeat(4,minmax(0,1fr));margin-block:1.5rem;padding:0;list-style:none;display:grid}.promotion-list li{border-top:1px solid var(--hairline);flex-direction:column;gap:.35rem;padding:.75rem .5rem 0 0;font-size:.75rem;display:flex;position:relative}.promotion-list li:before{content:"";background:var(--muted);width:3px;height:3px;position:absolute;top:-2px;left:0}.promotion-list .mono{color:var(--muted);font-size:.6875rem}.impact-list{padding-left:1.1rem}.timeline-item>p+.impact-list,.impact-list li+li{margin-top:.75rem}.impact-list li::marker{color:var(--muted);font-size:.75em}.impact-list strong{font-weight:550}.inline-link{margin-top:.75rem;font-size:.875rem;display:inline-block}.education-block{border-top:1px solid var(--hairline);margin-left:1.75rem;padding-top:1.75rem;font-size:.875rem}.degree{margin-block:1rem .3rem;font-size:1rem;font-weight:500}.education-block .meta{margin-bottom:.5rem}.education-block .tag-list{margin-bottom:.75rem}.certifications{color:var(--muted);margin-top:1rem;padding:0;list-style:none}.certifications li+li{margin-top:.25rem}.more-list{padding:0;list-style:none}.more-list li{border-top:1px solid var(--hairline);grid-template-columns:1fr 2fr 1.8fr;align-items:baseline;gap:1.5rem;padding-block:1.25rem;display:grid}.more-list h3{font-size:.9375rem;font-weight:550}.more-list li>p:not(.stack){color:var(--muted);font-size:.8125rem}.earlier-line{border-top:1px solid var(--hairline);color:var(--muted);margin-top:1.75rem;padding-top:1.75rem;font-size:.875rem}.speaking-grid{grid-template-columns:1.1fr 1fr;gap:6rem;display:grid}.talk+.talk{margin-top:1.75rem}.talk h3{margin-block:.3rem;font-size:1rem;font-weight:550}.talk>p:last-child{color:var(--muted);font-size:.875rem}.talk .meta{font-size:.6875rem}.writing-list{border-left:1px solid var(--hairline);padding-left:2.5rem}.writing-list h3{font-family:var(--font-display);font-optical-sizing:auto;letter-spacing:-.015em;margin-block:1rem;font-size:1.75rem;line-height:1.25}.writing-list .meta{font-size:.6875rem}.award{border-top:1px solid var(--hairline);margin-top:2rem;padding-top:1.5rem}.award>p:last-child{margin-top:.75rem;font-size:.875rem}.contact-section h2{font-family:var(--font-display);font-optical-sizing:auto;font-size:var(--text-heading);letter-spacing:-.03em;text-wrap:balance;font-weight:400;line-height:1.15}.contact-email{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin-top:1.5rem;display:flex}.contact-email>a{letter-spacing:-.035em;overflow-wrap:anywhere;font-size:clamp(1.375rem,1rem + 1.5vw,2.125rem);line-height:1.4}.copy-button{border:1px solid var(--muted);border-radius:var(--radius);background:0 0;padding:.45rem}.copy-button .icon{display:block}.copy-button:hover{background:var(--surface);border-color:var(--ink)}.copy-status{color:var(--muted);font-size:.6875rem}.contact-bottom{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem 2rem;margin-top:2.5rem;display:flex}.site-footer{border-top:1px solid var(--hairline);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem;padding-block:1.5rem;font-size:.6875rem;display:flex}.hero{isolation:isolate;position:relative}.hero.has-portrait{align-items:center;min-height:min(88vh,820px);display:grid}.hero.has-portrait .hero-intro{width:60%;padding-block:4rem}.hero-intro,.story-intro{isolation:isolate;z-index:1;position:relative}.has-portrait .hero-intro:before,.has-portrait .story-intro:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(closest-side, color-mix(in srgb, var(--paper) 55%, transparent), transparent);position:absolute;inset:-30% -25% -30% -20%}.dissolving-portrait{pointer-events:none;-webkit-mask-composite:source-in;width:58%;height:100%;position:absolute;top:0;right:0;mask-image:linear-gradient(90deg,#0000 4%,#000 42% 88%,#0000),linear-gradient(#0000,#000 16% 72%,#0000);mask-composite:intersect}.dissolving-portrait picture,.dissolving-portrait img{object-fit:cover;object-position:50% 30%;width:100%;height:100%;display:block}.hero-title{color:var(--ink)}.hero-note{color:var(--muted);max-width:56ch;margin-top:.65rem}.about-prose{max-width:68ch}.about-prose p+p{margin-top:1.25rem}.about-interests{margin-top:2.5rem}.about-prose .inline-link{margin-top:1.75rem;display:inline-block}.about-layout .section-label{margin-bottom:2rem}.about-layout .interest-grid{margin-top:0}@media (width>=1200px){.about-layout{grid-template-columns:minmax(0,58ch) minmax(0,1fr);gap:clamp(3rem,6vw,6rem);display:grid}.about-layout .about-interests{flex-direction:column;margin-top:0;display:flex}.about-layout .interest-grid{flex:1;grid-template-columns:1fr;grid-auto-rows:1fr;gap:1rem}}.interest-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1.25rem;padding:0;list-style:none;display:grid}.interest-grid li{border:1px solid color-mix(in srgb, var(--ink) 12%, transparent);border-radius:var(--radius);background:color-mix(in srgb, var(--surface) 65%, transparent);color:var(--muted);padding:1.25rem;font-size:.9375rem}.interest-grid strong{color:var(--ink);font-weight:600}.prose .interest-grid{padding:0}.prose .interest-grid li+li{margin-top:0}.story-prose>section+section{margin-top:2.75rem}.case-header.story-header{isolation:isolate;max-width:none;position:relative}.story-header.has-portrait{align-items:center;min-height:min(70vh,660px);display:grid}.story-intro{max-width:55%;padding-block:3rem}.story-header .story-intro h1{font-size:clamp(3.5rem,8vw,7rem);line-height:.95}.story-portrait.dissolving-portrait{mask-image:linear-gradient(90deg,#0000 2%,#000 40% 80%,#0000),linear-gradient(#0000,#000 30% 62%,#0000);mask-composite:intersect}.story-intro .case-summary{max-width:34ch;color:var(--ink)}.story-body{display:block}.story-prose{max-width:1000px;margin-inline:0}.story-prose>section>:not(figure){max-width:44rem;margin-inline:0}.story-figure{aspect-ratio:3/2;margin:1.75rem 0 0}@media (width<=760px){.interest-grid{grid-template-columns:1fr}}.project-grid,.talk-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:1.5rem;display:grid}.project-card,.talk-card{border:1px solid var(--hairline);border-radius:var(--radius-lg);min-width:0;overflow:hidden}.project-grid{align-items:stretch;row-gap:0;margin-bottom:-1.5rem}.project-card{grid-row:span 5;grid-template-columns:minmax(0,1fr);grid-template-rows:subgrid;row-gap:0;margin-bottom:1.5rem;display:grid}.project-copy{grid-row:2/span 4;grid-template-columns:minmax(0,1fr);grid-template-rows:subgrid;row-gap:0;display:grid}.project-copy,.talk-card{padding:clamp(1.25rem,2.5vw,2rem)}.talk-grid{align-items:stretch}.talk-chapter+.talk-chapter,.talk-chapters+.talk-grid{margin-top:6rem}.talk-chapters:empty+.talk-grid{margin-top:0}.talk-chapter{grid-template-rows:auto minmax(140px,1fr);grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;min-height:calc(2*clamp(220px,24vw,320px) + 12px);display:grid}.talk-chapter>*{min-width:0;min-height:0}.talk-copy{border:1px solid var(--hairline);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--surface) 70%, transparent);-webkit-backdrop-filter:blur(18px);grid-area:1/4;padding:clamp(1rem,1.6vw,1.5rem)}.talk-copy .talk-summary{color:var(--ink);margin-top:0}.talk-copy .talk-sessions{color:var(--ink);font-size:.8125rem}.talk-copy .case-links{font-size:.8125rem}.talk-photo{margin:0}.talk-photo--tall{grid-area:1/3/3}.talk-photo--small{grid-area:2/4}.talk-chapter--one .talk-lead,.talk-chapter--two .talk-lead{grid-column:1/4}.talk-chapter--one .talk-copy{grid-row:1/3}.talk-chapter--two .talk-photo--tall{grid-area:2/4}.talk-photo a,.talk-photo picture,.talk-photo img{width:100%;height:100%;display:block}.talk-photo img{object-fit:cover}.project-copy h3,.talk-card h3{font-family:var(--font-display);font-optical-sizing:auto;letter-spacing:-.02em;font-size:clamp(1.75rem,1.4rem + 1vw,2.25rem);font-weight:450;line-height:1.2}.tag-list{flex-wrap:wrap;gap:.4rem;margin:0;display:flex}.tag-list span{border:1px solid var(--hairline);border-radius:var(--radius);background:var(--surface);color:var(--muted);font-family:var(--font-mono);padding:.2rem .5rem;font-size:.6875rem;line-height:1.5}.project-summary{min-height:2lh;color:var(--muted);margin-top:1rem;font-size:.9375rem}.project-copy .stack{margin-top:1rem}.project-link{justify-self:start;margin-top:1.25rem;font-size:.8125rem}.project-link:after{content:"";position:absolute;inset:0}.project-image{aspect-ratio:16/10;background:var(--surface)}.project-image picture,.project-image img{object-fit:cover;width:100%;height:100%;display:block}.experiments{margin-top:3rem}.experiments>h3{margin-bottom:1rem}.experiments .more-list li{padding-inline:1.25rem}.more-list h4{margin:0;font-size:.9375rem;font-weight:550}.talk-event{color:var(--accent);margin-block:.75rem .35rem;font-size:.8125rem}.talk-summary,.talk-sessions{color:var(--muted);margin-top:1rem;font-size:.9375rem}.talk-sessions{padding-left:1.2rem}.image-gallery{align-items:start;gap:1rem;margin-block:2rem;display:grid}.work-gallery{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:3rem}.gallery-item{grid-column:1/-1;min-width:0;margin:0}.gallery-item picture,.gallery-item a{border-radius:var(--radius-lg);display:block;overflow:hidden}.gallery-item{border-radius:var(--radius-lg);box-shadow:var(--media-shadow)}.gallery-item img{width:100%;height:auto;display:block}.gallery-item.phone-image{grid-column:auto;justify-self:center;max-width:320px}.talks-gallery{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:0}.talks-gallery .gallery-item{grid-column:auto}.talks-gallery img{aspect-ratio:4/5;object-fit:cover}.gallery-item figcaption{color:var(--muted);margin-top:.4rem;font-size:.6875rem}.timeline-item{padding-bottom:2rem}.publication{max-width:68ch}.publication h3{font-family:var(--font-display);margin-bottom:1rem;font-size:clamp(1.75rem,1.5rem + 1vw,2.25rem);line-height:1.25}.recognition{color:var(--muted);border-top:1px solid var(--hairline);margin-top:2rem;padding-top:1.5rem;font-size:.8125rem}.recognition .section-label{margin-right:.75rem}@media (width<=1000px) and (width>=761px){.header-inner{gap:1rem}.primary-nav{gap:.8rem}.wordmark{max-width:18ch;line-height:1.35}}@media (width<=760px){.project-grid,.talk-grid{grid-template-columns:1fr}.talk-chapter+.talk-chapter,.talk-chapters+.talk-grid{margin-top:4rem}.primary-nav{overflow-x:auto}}@media (width<=600px){.work-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}.reading-main{padding-block:clamp(2.5rem, 5vw, 4rem) var(--section-space)}.case-header{max-width:56rem;margin-bottom:3.5rem}.case-header h1{font-size:clamp(3.25rem,2rem + 4vw,5.5rem)}.case-summary{max-width:60ch;font-size:var(--text-lede);color:var(--muted);margin-top:1.25rem;line-height:1.65}.case-stack{gap:.5rem;margin-top:1.5rem}.case-stack span{padding:.3rem .6rem}.case-links{flex-wrap:wrap;gap:1rem;margin-top:1.25rem;font-size:.875rem;display:flex}.case-body{grid-template-columns:minmax(0,68ch);display:grid}.prose{overflow-wrap:anywhere;min-width:0;max-width:68ch}.prose h2{font-family:var(--font-display);font-optical-sizing:auto;letter-spacing:-.02em;margin-block:2.75rem 1rem;font-size:clamp(1.875rem,1.5rem + 1vw,2.375rem);font-weight:450;line-height:1.2}.prose h2:first-child{margin-top:0}.prose h3{margin-block:2rem .75rem;font-size:1.125rem;font-weight:550}.prose p,.prose ul,.prose ol,.prose pre,.prose blockquote{margin-bottom:1.25rem}.prose ul,.prose ol{padding-left:1.3rem}.prose li+li{margin-top:.6rem}.prose li::marker{color:var(--muted)}.prose strong{font-weight:600}.prose code{font-family:var(--font-mono);border:1px solid var(--hairline);background:var(--surface);border-radius:3px;padding:.1em .3em;font-size:.8125em}.prose pre{border:1px solid var(--hairline);border-radius:var(--radius);max-width:100%;padding:1rem;overflow-x:auto}.prose pre code{background:0 0;border:0;padding:0}.prose blockquote{border-left:2px solid var(--accent);color:var(--muted);margin-inline:0;padding-left:1.25rem}.case-toc{display:none}.work-video{margin:0 0 3.5rem}.work-video video{width:100%;height:auto;display:block}.arch{overflow-wrap:normal;margin:2rem 0}.arch svg{width:100%;height:auto;display:block;overflow:visible}.arch .arch-tall{display:none}.arch text{font-family:var(--font-body);fill:var(--ink)}.arch .n rect{fill:var(--surface);stroke:var(--hairline)}.arch .t{font-size:15px;font-weight:600}.arch .s{fill:var(--muted);font-size:12.5px}.arch .l,.arch .wl{font-family:var(--font-mono);fill:var(--muted);font-size:11px}.arch .core{fill:color-mix(in srgb, var(--accent) 6%, var(--surface));stroke:color-mix(in srgb, var(--accent) 35%, var(--hairline))}.arch .st rect{fill:var(--surface);stroke:color-mix(in srgb, var(--accent) 35%, var(--hairline))}.arch .st .t{fill:var(--accent);font-size:14px}.arch .st .s{font-size:11.5px}.arch .w{fill:none;stroke:var(--muted);stroke-width:1.25px}.arch .p,.arch .ah{fill:var(--muted)}@media (width<=600px){.arch .arch-wide{display:none}.arch .arch-tall{display:block}}.case-next{border-top:1px solid var(--hairline);max-width:68ch;margin-top:3rem;padding-top:1.75rem}.case-next p{color:var(--muted);font-size:.875rem}.centered-page{flex-direction:column;min-height:100svh;display:flex}.centered-page .reading-main{flex:1;justify-content:center;align-items:center;padding-block:clamp(2.5rem,5vw,4rem);display:flex}.not-found{text-align:center}.not-found h1{margin-block:1rem 1.5rem}.not-found>p:not(.section-label){color:var(--muted)}@media (width>=1100px){.case-body{grid-template-columns:minmax(0,68ch) minmax(10rem,1fr);gap:4rem}.case-toc{top:var(--header-offset);border-left:1px solid var(--hairline);align-self:start;padding-left:1.5rem;display:block;position:sticky}.case-toc ol{margin-top:1rem;padding:0;list-style:none}.case-toc li+li{margin-top:.65rem}.case-toc a{color:var(--muted);font-size:.8125rem;text-decoration:none;display:inline-block}.case-toc a:hover{color:var(--accent);text-decoration:underline}.story-body{grid-template-columns:minmax(0,1fr) 10rem;gap:3rem;display:grid}.story-prose{width:100%}}@media (width<=900px){.header-inner{gap:1.25rem}.primary-nav{gap:1rem}.experience-section{grid-template-columns:1fr 2fr;gap:2rem}.speaking-grid{gap:3rem}.writing-list{padding-left:1.5rem}.proof-strip>div{padding-inline:1rem}.proof-strip dd{font-size:1rem}}@media (width<=760px){:root{--header-offset:8rem}.header-inner{grid-template-columns:minmax(0,1fr) auto;gap:0;padding-top:.75rem;display:grid}.wordmark{margin:0;font-size:.8125rem}.header-actions{grid-area:1/2;gap:.65rem}.primary-nav{grid-area:2/1/auto/-1;justify-content:space-between;gap:1rem;padding-top:.35rem}.primary-nav a{font-size:.75rem}.button-small{min-height:2.25rem;padding-inline:.6rem;font-size:.6875rem}.proof-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem 0;padding-block:1.5rem 2rem}.proof-strip>div{padding-inline:1.25rem}.proof-strip>div:nth-child(odd){border-left:0;padding-left:0}.proof-strip dd{font-size:clamp(1rem,2.5vw,1.25rem)}.work-row{grid-template-columns:1.5rem minmax(0,1fr);gap:.75rem;padding-block:1.75rem}.work-meta{grid-column:2;padding-top:.5rem}.work-meta .context{margin-bottom:.35rem}.read-link{margin-top:.75rem}.experience-section{display:block}.section-sidebar{margin-bottom:2rem;position:static}.timeline-item{padding-left:1.25rem}.education-block{margin-left:1.25rem}.more-list li{grid-template-columns:1fr 2fr;gap:.5rem 1.25rem}.more-list .stack{grid-column:2}.speaking-grid{grid-template-columns:1fr;gap:2.5rem}.writing-list{border-left:0;border-top:1px solid var(--hairline);padding-top:2rem;padding-left:0}}@media (width<=420px){:root{--gutter:1rem}.header-actions{gap:.3rem}.wordmark{max-width:18ch;line-height:1.35}.hero-status{font-size:.6875rem}.hero-actions{gap:1.25rem}.more-list li{grid-template-columns:1fr;gap:.5rem}.more-list .stack{grid-column:auto}.promotion-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 0}.proof-strip>div{padding-inline:.75rem}.proof-strip dd{font-size:.9375rem}.proof-strip dt{font-size:.6875rem}}.media-frame{border-radius:var(--radius-lg);box-shadow:var(--media-shadow);overflow:hidden}.media-frame img,.gallery-item img{transition:transform .6s}.media-overlay{isolation:isolate;flex-direction:column;justify-content:end;display:flex;position:relative}.media-overlay>picture,.media-overlay>a{position:absolute;inset:0}.media-overlay picture,.media-overlay img,.talk-lead>a{width:100%;height:100%;display:block}.media-overlay img{object-fit:cover}.about-band{aspect-ratio:21/9;margin:3rem 0 0}.about-band img{object-position:58% 35%}.talk-lead{grid-area:1/1/3/3}.talk-lead img{object-position:center 40%}.overlay-copy{z-index:1;color:#fff;padding:clamp(1.25rem,4vw,3rem);pointer-events:none;overflow-wrap:anywhere;background:linear-gradient(#0000,#000000c7 3rem,#000000eb);padding-top:clamp(3rem,7vw,6rem);position:relative}.overlay-copy p:last-child{margin-bottom:0}.talk-lead .overlay-copy{padding-inline:clamp(1.25rem,2.5vw,2rem);padding-bottom:clamp(1.25rem,2.5vw,2rem)}.talk-lead .overlay-title{font-size:clamp(2rem,3.4vw,3rem)}.overlay-copy .meta,.overlay-copy .talk-event{color:#fff}.overlay-copy .tag-list span{color:#fff;background:#00000059;border-color:#ffffff59}.overlay-kicker{letter-spacing:.055em;text-transform:uppercase;margin-bottom:.75rem;font-size:.75rem}.overlay-title{font-family:var(--font-display);letter-spacing:-.025em;text-wrap:balance;max-width:28ch;font-size:clamp(2rem,4vw,3.5rem);font-weight:400;line-height:1.1}.media-frame:has(a:focus-visible),.gallery-item:has(a:focus-visible){outline:2px solid var(--accent);outline-offset:5px}.talk-lead>a:focus-visible,.talk-photo>a:focus-visible,.gallery-item a:focus-visible{outline-offset:-6px;outline:2px solid #fff}.ambient-light{z-index:-1;pointer-events:none;opacity:0;background:radial-gradient(600px circle at var(--x,50%) var(--y,25%), color-mix(in srgb, var(--accent) var(--spotlight-strength), transparent), transparent 70%);transition:opacity .6s;position:fixed;inset:0}.page-glow{z-index:-1;pointer-events:none;height:140vh;position:absolute;top:0;left:0;right:0;mask-image:linear-gradient(#000 55%,#0000)}.page-glow span{aspect-ratio:1;filter:blur(110px);width:min(70vw,1000px);opacity:calc(var(--glow-opacity) * 1.6);background:#f080b6;border-radius:50%;animation:26s ease-in-out infinite alternate ambient-drift;position:absolute;top:-10%;right:-8%}.page-glow span:nth-child(2){background:#ae79ed;animation-duration:23s;animation-delay:-9s;top:12%;right:15%}.page-glow span:nth-child(3){background:#ee99bd;animation-duration:29s;animation-delay:-17s;top:35%;right:-16%}@keyframes ambient-drift{0%{transform:translate(-6%,-8%)scale(.95)}to{transform:translate(8%,10%)scale(1.08)}}.project-card,.talk-card,.experiments .more-list li,.interest-grid li{isolation:isolate;transition:border-color .23s,translate .23s,box-shadow .23s;position:relative}.project-card:before,.talk-card:before,.experiments .more-list li:before,.interest-grid li:before{content:"";z-index:-1;border-radius:inherit;pointer-events:none;background:radial-gradient(400px circle at var(--mx,50%) var(--my,50%), color-mix(in srgb, var(--accent) 10%, transparent), transparent 70%);opacity:0;transition:opacity .23s;position:absolute;inset:0}.project-card:focus-within,.talk-card:focus-within,.experiments .more-list li:focus-within,.interest-grid li:focus-within{border-color:var(--accent)}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.ambient-light.is-active{opacity:1}.project-card:hover,.talk-card:hover,.experiments .more-list li:hover,.interest-grid li:hover{border-color:color-mix(in srgb, var(--accent) 65%, var(--hairline));box-shadow:0 12px 30px -18px color-mix(in srgb, var(--accent) 35%, transparent);translate:0 -2px}.project-card:hover:before,.talk-card:hover:before,.experiments .more-list li:hover:before,.interest-grid li:hover:before{opacity:1}.media-frame:hover img,.gallery-item:hover img{transform:scale(1.03)}}[data-reveal]{transition:opacity .65s,transform .65s;transition-delay:calc(var(--i,0) * 80ms)}.project-card[data-reveal],.talk-card[data-reveal],.interest-grid li[data-reveal],.more-list li[data-reveal]{transition:opacity .65s,transform .65s,border-color .23s,translate .23s,box-shadow .23s;transition-delay:calc(var(--i,0) * 80ms), calc(var(--i,0) * 80ms), 0s, 0s, 0s}@media (prefers-reduced-motion:no-preference){.js [data-reveal]:not(.is-visible){opacity:0;transform:translateY(20px)}.about-band img{transition:transform 1.1s cubic-bezier(.2,.65,.3,1)}.js .about-band[data-reveal]:not(.is-visible) img{transform:scale(1.06)}.about-band.is-visible img{transform:scale(1)}}@media (width<=1000px){.talk-chapter{grid-template-rows:none;grid-template-columns:repeat(2,minmax(0,1fr));min-height:0}.talk-chapter .talk-lead{aspect-ratio:16/9;grid-area:1/1/auto/-1}.talk-chapter .talk-copy{grid-area:3/1/auto/-1;padding:1.5rem}.talk-chapter .talk-photo{aspect-ratio:4/5;grid-area:2}.talk-chapter--one .talk-copy{grid-row:2}}@media (width<=760px){.hero.has-portrait,.story-header.has-portrait{grid-template-columns:minmax(0,1fr);align-items:start;min-height:0;display:grid}.has-portrait .dissolving-portrait,.story-portrait.dissolving-portrait{aspect-ratio:4/5;grid-area:1/1;width:100vw;height:auto;max-height:70vh;margin-left:calc(50% - 50vw);position:relative;right:auto;mask-image:linear-gradient(#0000,#000 6% 65%,#0000);mask-composite:add}.hero.has-portrait .hero-intro,.has-portrait .story-intro{grid-area:2/1;width:100%;max-width:none;margin-top:clamp(-10rem,-22vw,-6rem);padding-block:0 3rem}.hero h1{font-size:clamp(3.5rem,10.5vw,5.5rem)}.has-portrait .hero-intro:before,.has-portrait .story-intro:before{inset:-2rem calc(-1 * var(--gutter)) 0;background:linear-gradient(transparent, var(--paper) 5rem)}.hero-title{margin-top:1rem}.hero-actions{gap:1rem 1.5rem}.story-header{margin-bottom:2rem}.portrait-page .reading-main{padding-top:0}.portrait-page .about-band{aspect-ratio:4/5}.talks-gallery{grid-template-columns:1fr}.about-band img{object-position:61% center}}@media (width<=600px){.talk-chapter .talk-lead{aspect-ratio:4/5}.talk-chapter .talk-copy{grid-row:2}.talk-chapter .talk-photo{grid-row:3}.talk-google-devcon-2024 img{object-position:83% center}.talk-unlocking-azure img{object-position:25% center}.story-figure{aspect-ratio:4/5}.story-figure img{object-position:61% center}}@keyframes status-pulse{0%,to{opacity:1}50%{opacity:.45}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}[data-reveal]{opacity:1;transform:none}.ambient-light{display:none}.media-frame img,.gallery-item img{transform:none}.project-card,.talk-card,.experiments .more-list li,.interest-grid li{translate:none}}
