@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/archivo-vietnamese-wght-normal.XAtsl5Q_.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/archivo-latin-ext-wght-normal.C4zznr8T.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/archivo-latin-wght-normal.E0tuGl4L.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/dm-mono-latin-ext-400-normal.C2zvOubV.woff2) format("woff2"),url(/_astro/dm-mono-latin-ext-400-normal.1aZr6b2b.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/dm-mono-latin-400-normal.4GdczIuU.woff2) format("woff2"),url(/_astro/dm-mono-latin-400-normal.-0xN8mdc.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/dm-mono-latin-ext-500-normal.BtRyHRi6.woff2) format("woff2"),url(/_astro/dm-mono-latin-ext-500-normal.Dw3M13d8.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:DM Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/dm-mono-latin-500-normal.DRMDZjhP.woff2) format("woff2"),url(/_astro/dm-mono-latin-500-normal.CN8Miw6E.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper: #f8f6ee;--paper-raised: #fffdf6;--panel: #f0e094;--highlight: #f5eab0;--ink: #24221e;--ink-muted: #57534a;--hairline: #24221e;--on-ink: #f8f6ee;--signal: #3d6b4f;--font-sans: "Archivo Variable", Archivo, "Helvetica Neue", Arial, sans-serif;--font-mono: "DM Mono", ui-monospace, Menlo, monospace;--space-1: 4px;--space-2: 8px;--space-3: 16px;--space-4: 24px;--space-5: 40px;--space-6: 64px;--space-7: 104px;--space-8: 168px;--dur-quick: .16s;--dur-base: .42s;--dur-slow: 1.4s;--ease-out-soft: cubic-bezier(.16, 1, .3, 1);--ease-inout: cubic-bezier(.65, 0, .35, 1);--page-max: 880px;--measure: 52ch;--gutter: max(16px, env(safe-area-inset-left, 0px));color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:72px;-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-mono);font-size:14px;line-height:21px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}:focus-visible{outline:2px solid var(--ink);outline-offset:3px}::selection{background:var(--panel);color:var(--ink)}.wrap{max-width:calc(var(--page-max) + 2 * var(--space-4));margin:0 auto;padding-left:max(var(--space-4),env(safe-area-inset-left,0px));padding-right:max(var(--space-4),env(safe-area-inset-right,0px))}.up{text-transform:uppercase;letter-spacing:.08em;font-size:12px;line-height:16px;font-weight:500}.muted{color:var(--ink-muted)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip{position:absolute;left:-9999px;top:8px;background:var(--ink);color:var(--on-ink);padding:8px 12px;z-index:100}.skip:focus{left:8px}.js .r{opacity:0;transform:translateY(14px);transition:opacity var(--dur-base) var(--ease-out-soft),transform .7s var(--ease-out-soft)}.js .r.in{opacity:1;transform:none}.site-header{position:sticky;top:0;z-index:10;background:var(--paper)}body:before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:11;background:var(--paper)}.site-header{top:env(safe-area-inset-top,0px)}.hd{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-4);padding-top:var(--space-4);padding-bottom:var(--space-4)}.wm{font-family:var(--font-sans);font-weight:700;font-size:14px}.hd nav{display:flex;gap:var(--space-5)}.progress{height:1px;background:var(--ink);transform-origin:0 50%;transform:scaleX(0)}.browse{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);padding-top:var(--space-7);padding-bottom:var(--space-7)}.down{display:inline-block;animation:bob 2.4s var(--ease-inout) infinite}@keyframes bob{50%{transform:translateY(4px)}}.lede{font-size:17px;line-height:26px}.lede p{margin:0;max-width:var(--measure)}.lede p+p{text-indent:5ch}.caret{display:inline-block;width:.55em;height:1em;background:var(--ink);vertical-align:-2px;animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}.typed-wrap{position:relative}.typed-live{display:none}.js .typed-ghost{color:transparent}.js .typed-live{display:block;position:absolute;inset:0}.photo{margin:var(--space-7) 0 0 auto;max-width:520px;overflow:hidden;aspect-ratio:4 / 5;background:var(--paper-raised)}.photo img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;filter:grayscale(1) sepia(.12);transform:scale(var(--z, 1.12));transition:filter var(--dur-slow) var(--ease-out-soft)}.photo:hover img{filter:grayscale(0) sepia(0)}.cap{display:flex;justify-content:space-between;max-width:520px;margin:var(--space-2) 0 0 auto;font-size:12px;line-height:16px}.clock{font-variant-numeric:tabular-nums}.statement{padding-top:var(--space-8);padding-bottom:var(--space-8)}.statement p{font-family:var(--font-sans);font-size:clamp(30px,5.4vw,52px);line-height:1.04;letter-spacing:-.015em;font-weight:500;margin:0;text-wrap:balance}.js .statement .w{opacity:.15;transition:opacity .3s linear}.js .statement .w.on{opacity:1}.sec{padding-bottom:var(--space-8)}.sec h2{font-family:var(--font-sans);font-size:22px;line-height:1.15;font-weight:700;margin:0 0 var(--space-5)}.panel{background:var(--panel);margin-bottom:var(--space-8)}.panel-hd{display:flex;justify-content:space-between;padding-top:var(--space-5);padding-bottom:var(--space-6)}.panel-hd button{all:unset;cursor:pointer}.panel-hd button:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.list{padding-bottom:var(--space-6)}.list[hidden]{display:none}.item{border-bottom:1px dotted var(--hairline)}.item>button{all:unset;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:1fr auto;gap:var(--space-4);width:100%;padding:12px 0}.item>button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.item .t{background:linear-gradient(var(--ink),var(--ink)) 0 100% / 0 1px no-repeat;transition:background-size var(--dur-base) var(--ease-out-soft)}.item>button:hover .t{background-size:100% 1px}.item .yr{margin-left:var(--space-3);color:var(--ink-muted);font-size:12px;opacity:0;transition:opacity var(--dur-quick)}.item>button:hover .yr,.item.open .yr{opacity:1}.arr{display:inline-block;transition:transform var(--dur-quick)}.item>button:hover .arr{transform:translate(6px)}.item.open .arr{transform:rotate(90deg)}.det{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur-base) var(--ease-out-soft)}.item.open .det{grid-template-rows:1fr}.det>div{overflow:hidden}.det p{margin:0 0 var(--space-4);max-width:60ch;font-size:13px;line-height:19px}.note{display:grid;grid-template-columns:160px 1fr;gap:var(--space-4);padding:var(--space-4) 0;border-top:1px dotted var(--hairline)}.note p{margin:0;max-width:var(--measure)}.note b{font-family:var(--font-sans);font-size:16px;font-weight:700;display:block;margin-bottom:var(--space-1)}.ai-lede{font-family:var(--font-sans);font-size:22px;line-height:1.25;font-weight:500;margin:0 0 var(--space-3);max-width:30ch;text-wrap:balance}.ai-body{font-size:17px;line-height:26px;margin:0 0 var(--space-6);max-width:var(--measure)}.skl{background:var(--panel);padding:var(--space-4)}.skl-hd{display:flex;justify-content:space-between;margin-bottom:var(--space-4)}.sk{display:grid;grid-template-columns:1fr auto;padding:12px 0;border-bottom:1px dotted var(--hairline)}a.sk:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.sk-n{justify-self:start;background:linear-gradient(var(--ink),var(--ink)) 0 100% / 0 1px no-repeat;transition:background-size var(--dur-base) var(--ease-out-soft)}a.sk:hover .sk-n{background-size:100% 1px}a.sk .arr-up{transition:transform var(--dur-quick)}a.sk:hover .arr-up{transform:translate(3px,-3px)}.sk-d{grid-column:1 / -1;font-size:13px;line-height:19px}.sk-c{grid-column:1 / -1;font-size:12px;height:0;overflow:hidden;transition:height var(--dur-base) var(--ease-out-soft)}.sk:hover .sk-c,.sk:focus-visible .sk-c{height:22px}.sk-c:before{content:"$ claude ";color:var(--ink-muted)}.sk-c:after{content:"";display:inline-block;width:.55em;height:12px;background:var(--ink);vertical-align:-1px;margin-left:2px;animation:blink 1s steps(1) infinite}.clients{columns:2;column-gap:var(--space-5);list-style:none;margin:0;padding:0}.clients li{break-inside:avoid;border-bottom:1px dotted var(--hairline);padding:8px 4px;display:flex;justify-content:space-between;transition:background var(--dur-quick)}.clients li:hover{background:var(--highlight)}.clients li span:last-child{color:var(--ink-muted);font-size:12px;opacity:0;transition:opacity var(--dur-quick)}.clients li:hover span:last-child{opacity:1}.ref{max-width:56ch}.ref blockquote{margin:0;font-size:17px;line-height:26px;min-height:182px}.ref figcaption{margin-top:var(--space-3);font-size:12px}.ref-nav{display:flex;gap:var(--space-4);margin-top:var(--space-4)}.ref-nav button{all:unset;cursor:pointer}.ref-nav button[aria-pressed=true]{text-decoration:underline;text-underline-offset:5px}.ref-nav button:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.no-js-refs figure+figure{margin-top:var(--space-5)}.contact{padding-bottom:var(--space-7)}.contact h2.up{margin:0 0 var(--space-4)}.email-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-3)}.email{font-family:var(--font-sans);font-size:clamp(24px,4.4vw,40px);line-height:1.1;font-weight:500;letter-spacing:-.01em;position:relative;isolation:isolate;overflow-wrap:anywhere}.email:before{content:"";position:absolute;inset:15% -6px 0;background:var(--panel);transform:scaleX(0);transform-origin:0 50%;transition:transform var(--dur-base) var(--ease-inout);z-index:-1}.email:hover:before,.email:focus-visible:before{transform:scaleX(1)}.copy{all:unset;cursor:pointer;font-size:12px;color:var(--ink-muted)}.copy:hover{color:var(--ink)}.copy:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.avail{display:flex;gap:var(--space-2);align-items:baseline;margin:var(--space-5) 0 0;max-width:var(--measure)}.dot{width:7px;height:7px;border-radius:50%;background:var(--signal);flex:none;transform:translateY(-2px);animation:breathe 3.2s ease-in-out infinite}@keyframes breathe{50%{opacity:.35}}.links{display:flex;gap:var(--space-5);margin-top:var(--space-4)}.links a:hover{text-decoration:underline;text-underline-offset:5px}.ft{display:flex;justify-content:space-between;padding-top:var(--space-4);padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom,0px));font-size:12px;border-top:1px dotted var(--hairline)}@media(max-width:720px){.wrap{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.hd nav{gap:var(--space-3)}.hd nav a:not(:last-child){display:none}.wm{font-size:13px}.browse{grid-template-columns:1fr;padding-top:var(--space-6);padding-bottom:var(--space-6)}.photo,.cap{max-width:none}.statement{padding-top:var(--space-7);padding-bottom:var(--space-7)}.sec,.panel{padding-bottom:var(--space-7)}.note{grid-template-columns:1fr;gap:var(--space-2)}.clients{columns:1}.clients li span:last-child{opacity:1}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .r{opacity:1;transform:none}.down,.caret,.dot,.sk-c:after{animation:none}.js .statement .w{opacity:1}.photo img{transform:none}*,*:before,*:after{transition-duration:.01ms!important}}
