@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-vietnamese-wght-normal.BUzh504Q.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-ext-wght-normal.CcLUaPy7.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-wght-normal.DLoelf7F.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-wght-normal.Czsa-EzN.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-wght-normal.C-3rgBeH.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-wght-normal.CCVVNp6i.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{--bg:#e9edef;--surface:#f6f8f9;--ink:#101b26;--muted:#55636f;--rule:#c3ccd3;--accent:#2f4bff;--accent-ink:#fff;--ph-bg:#fff0b8;--ph-ink:#4a3a00;--display:"Bricolage Grotesque Variable", system-ui, sans-serif;--text:"Newsreader Variable", Georgia, serif;--rail:15.5rem}@media (prefers-color-scheme:dark){:root{--bg:#0e151c;--surface:#16202a;--ink:#e8edf1;--muted:#96a4af;--rule:#2a3743;--accent:#8ea0ff;--accent-ink:#0e151c;--ph-bg:#4a3d0a;--ph-ink:#ffe9a0}}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:1.5rem}body{background:var(--bg);color:var(--ink);font-family:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-size:1.1875rem;line-height:1.6}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}a:focus-visible,.btn:focus-visible{outline:3px solid var(--accent);outline-offset:3px}h1,h2,h3{font-family:var(--display);margin:0;line-height:1.1}p{margin:0}ul,ol{margin:0;padding:0;list-style:none}.skip{background:var(--ink);color:var(--bg);z-index:10;padding:.6rem 1rem;position:absolute;top:-4rem;left:1rem}.skip:focus{top:1rem}.ph{background:var(--ph-bg);color:var(--ph-ink);font-family:var(--display);border-radius:3px;padding:.05em .35em;font-size:.85em;font-weight:500}.shell{grid-template-columns:var(--rail) minmax(0, 1fr);max-width:76rem;margin:0 auto;display:grid}.rail{padding:2.5rem 1.5rem 2.5rem 2rem}.rail-inner{position:sticky;top:2.5rem}.rail-name{font-family:var(--display);font-size:1.35rem;font-weight:700}.rail-name a{text-decoration:none}.rail-role{color:var(--muted);margin-top:.4rem;font-size:1rem;line-height:1.4}.rail nav{margin-top:2.5rem}.rail nav li+li{margin-top:.15rem}.rail nav a{font-family:var(--display);color:var(--muted);padding:.25rem 0;font-size:1rem;text-decoration:none;display:inline-block}.rail nav a:hover{color:var(--ink);text-decoration:underline}main{max-width:52rem;padding:0 2rem 4rem 1rem}section{padding-top:6rem}section>h2{color:var(--muted);border-bottom:1px solid var(--rule);margin-bottom:2.5rem;padding-bottom:.75rem;font-size:1rem;font-weight:600}.hero{padding-top:5rem}.hero h1{font-variation-settings:"wdth" 85;letter-spacing:-.035em;text-wrap:balance;max-width:14ch;font-size:clamp(2.6rem,7.2vw,5.4rem);font-weight:800;font-stretch:85%;line-height:.98}.hero-line{animation:.9s cubic-bezier(.2,.7,.2,1) both settle;display:inline-block}@keyframes settle{0%{opacity:0;letter-spacing:.01em;transform:translateY(.35em)}to{opacity:1;letter-spacing:inherit;transform:none}}.lede{max-width:34rem;margin-top:2rem;font-size:1.35rem;line-height:1.5}.avail{color:var(--muted);margin-top:1.25rem;font-size:1rem}.actions{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.btn{font-family:var(--display);border:1.5px solid var(--ink);border-radius:999px;padding:.8rem 1.4rem;font-size:1rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s,border-color .15s}.btn:hover{background:var(--ink);color:var(--bg)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover{background:var(--ink);border-color:var(--ink);color:var(--bg)}.case{border-bottom:1px solid var(--rule);margin-bottom:3.5rem;padding-bottom:3.5rem}.case:last-child{border-bottom:0;margin-bottom:0}.case h3{letter-spacing:-.02em;font-size:clamp(1.8rem,3.6vw,2.5rem);font-weight:700}.meta{color:var(--muted);margin-top:.5rem;font-size:1rem}.shot{aspect-ratio:16/9;text-align:center;border:1.5px dashed var(--rule);background:repeating-linear-gradient(135deg, transparent 0 14px, color-mix(in srgb, var(--rule) 45%, transparent) 14px 15px), var(--surface);border-radius:6px;place-items:center;margin:1.75rem 0;padding:1.5rem;display:grid}.shot figcaption{max-width:28rem}.shot-file{aspect-ratio:auto;background:var(--surface);border-style:solid;padding:0;overflow:hidden}.shot-file img{width:100%;height:auto;display:block}.summary{max-width:38rem;font-size:1.25rem}.facts{grid-template-columns:9rem 1fr;gap:1rem 1.5rem;max-width:40rem;margin:1.75rem 0 0;display:grid}.facts dt{font-family:var(--display);padding-top:.15rem;font-size:1rem;font-weight:600}.facts dd{margin:0}.chips{flex-wrap:wrap;gap:.5rem;margin-top:1.5rem;display:flex}.chips li{font-family:var(--display);border:1px solid var(--rule);background:var(--surface);border-radius:999px;padding:.25rem .75rem;font-size:.9rem}.case-link{margin-top:1.25rem;font-size:1rem}.timeline li{border-top:1px solid var(--rule);grid-template-columns:11rem 1fr;gap:.5rem 1.5rem;padding:1.5rem 0;display:grid}.timeline li:first-child{border-top:0;padding-top:0}.when{color:var(--muted);padding-top:.2rem;font-size:1rem}.timeline h3{margin-bottom:.4rem;font-size:1.25rem;font-weight:600}.timeline p:not(.when){max-width:34rem}.skills{grid-template-columns:14rem 1fr;gap:1.25rem 1.5rem;margin:0;display:grid}.skills dt{font-family:var(--display);font-weight:600}.skills dd{margin:0}.points{gap:2rem;margin-top:2.5rem;display:grid}.points h3{margin-bottom:.4rem;font-size:1.3rem;font-weight:600}.points p,.prose{max-width:36rem}.prose+.prose{margin-top:1.25rem}.edu{color:var(--muted);margin-top:1.75rem;font-size:1rem}.contact h2+.lede{margin-top:0}.mail{margin-top:1.5rem}.mail a{font-family:var(--display);letter-spacing:-.02em;text-decoration-thickness:3px;text-decoration-color:var(--accent);text-underline-offset:.18em;word-break:break-word;font-size:clamp(1.6rem,5vw,2.6rem);font-weight:700}.mail a:hover{color:var(--accent)}.elsewhere{gap:.25rem;margin-top:1.75rem;display:grid}footer{border-top:1px solid var(--rule);color:var(--muted);margin-top:6rem;padding-top:1.5rem;font-size:.95rem}@media (width<=62rem){.shell{display:block}.rail{padding:1.5rem 1.25rem 0}.rail-inner{position:static}.rail nav{margin-top:1rem}.rail nav ul{flex-wrap:wrap;gap:.25rem 1.1rem;display:flex}main{padding:0 1.25rem 3rem}section{padding-top:4.5rem}.hero{padding-top:3rem}}@media (width<=40rem){body{font-size:1.0625rem}.facts,.skills,.timeline li{grid-template-columns:1fr;gap:.25rem}.facts dd,.skills dd{margin-bottom:.75rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-line{animation:none}.btn{transition:none}}
