@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}:root{--c1:#0b2a4a;--c2:#2f6fb0;--c3:#cfe0f5;--on-c1:#fff;--on-c2:#fff;--on-c3:#0b2a4a;--black:#111;--white:#fff;--muted:#6b6b6b;--font:"Bricolage Grotesque Variable", system-ui, sans-serif;--wrap:74rem;--pad:clamp(1.25rem, 4vw, 3rem)}*{box-sizing:border-box}html{font-family:var(--font);color:var(--black);background:var(--white);scroll-behavior:smooth;-webkit-font-smoothing:antialiased;font-size:17px;line-height:1.5}body{margin:0}h1,h2,h3{letter-spacing:-.02em;margin:0;line-height:1.05}p{margin:0}ul{margin:0;padding:0;list-style:none}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}a:hover{background:var(--c3);color:var(--on-c3)}.btn:hover{background:inherit}.wrap{max-width:var(--wrap);padding-inline:var(--pad);margin-inline:auto}.topbar{border-bottom:2px solid var(--black);background:var(--white)}.topbar .wrap{justify-content:space-between;align-items:center;gap:1rem;height:3.5rem;display:flex}.brand{white-space:nowrap;font-weight:700}.topbar ul{align-items:baseline;gap:1.5rem;display:flex}.topbar a{white-space:nowrap;margin:0 -.2rem;padding:.1rem .2rem;font-weight:500}.topbar .cv{font-weight:700}.topbar .lang{border:2px solid var(--black);padding:.1rem .45rem;font-weight:700}.topbar .lang:hover{background:var(--black);color:var(--white)}@media (width<=40rem){.topbar ul{gap:.9rem;font-size:.95rem}.topbar .wrap>ul>li:nth-child(3),.topbar .wrap>ul>li:nth-child(4){display:none}.topbar ul{gap:.75rem}}.cv-menu{position:relative}.cv-menu summary{cursor:pointer;white-space:nowrap;margin:0 -.2rem;padding:.1rem .2rem;font-weight:700;list-style:none}.cv-menu summary::-webkit-details-marker{display:none}.cv-menu summary:hover,.cv-menu[open] summary{background:var(--c3);color:var(--on-c3)}.cv-menu summary:focus-visible{outline:2px solid var(--c2);outline-offset:2px}.cv-menu .cv-options{z-index:20;background:var(--white);min-width:11rem;color:var(--black);border:2px solid var(--black);box-shadow:.4rem .4rem 0 var(--c2);gap:0;display:grid;position:absolute;top:calc(100% + .6rem);right:0}.cv-menu .cv-options li+li{border-top:2px solid var(--black)}.cv-menu .cv-options a{border:0;justify-content:space-between;gap:1rem;margin:0;padding:.65rem .9rem;font-weight:700;display:flex}.cv-menu .cv-options a span{color:var(--muted);font-weight:500}.cv-menu .cv-options a:hover{background:var(--c1);color:var(--white)}.cv-menu .cv-options a:hover span{color:inherit}.hero{background:var(--c1);color:var(--on-c1);padding-block:clamp(3rem,7vw,6rem)}.hero a:hover{background:var(--c3);color:var(--on-c3)}.hero-grid{grid-template-columns:1fr;align-items:center;gap:3rem;display:grid}@media (width>=60rem){.hero-grid{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:4rem}}.hero h1{letter-spacing:-.04em;font-size:clamp(3.4rem,8vw,7rem);font-weight:800;line-height:.9}.hero h1 span{display:block}.tagline{letter-spacing:-.02em;color:var(--c3);margin-top:1.25rem;font-size:clamp(1.5rem,2.6vw,2.2rem);font-weight:700}.lede{max-width:34em;margin-top:1.25rem;font-size:clamp(1.05rem,1.4vw,1.25rem);line-height:1.45}.actions{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.btn{border:2px solid #0000;padding:.8rem 1.3rem;font-weight:700;line-height:1;display:inline-block}.btn-yellow{background:var(--white);color:var(--c1);border-color:var(--white)}.btn-yellow:hover{background:var(--c3);border-color:var(--c3);color:var(--on-c3)}.btn-ghost{border-color:var(--on-c1);color:var(--on-c1)}.btn-ghost:hover{background:var(--on-c1);color:var(--c1)}.portrait{justify-self:center;width:min(100%,24rem);margin:0;position:relative}@media (width>=60rem){.portrait{justify-self:end}}.portrait:before{content:"";background:var(--c2);position:absolute;inset:0;transform:translate(1rem,1rem)}.portrait img{width:100%;position:relative}.section{padding-block:clamp(3rem,6vw,5rem)}.section+.section{border-top:2px solid var(--black)}.section h2{font-size:clamp(2rem,3.6vw,3rem);font-weight:800}.split{grid-template-columns:1fr;gap:1.5rem 3rem;display:grid}@media (width>=56rem){.split{grid-template-columns:14rem minmax(0,1fr)}.split>h2{align-self:start;position:sticky;top:1.5rem}}.entries{gap:0;display:grid}.entry{border-top:2px solid var(--black);padding-block:1.5rem}.entry:first-child{border-top:0;padding-top:.4rem}.entry-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem 1rem;display:flex}.entry h3{font-size:1.75rem;font-weight:700}.entry .h3-small{font-size:1.25rem}.years{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:500}.role{color:var(--muted);margin-top:.15rem}.entry p+p,.entry ul+p{margin-top:.75rem}.entry p{max-width:62ch}.tags{color:var(--c1);font-weight:600}.clients{gap:.7rem;margin-top:1rem}.entry-links{flex-wrap:wrap;gap:.25rem 1.25rem;font-weight:600;display:flex}.entry-links a{text-underline-offset:.15em;text-decoration:underline 2px}.clients strong{font-weight:700}.highlights{background:color-mix(in srgb, var(--c3) 45%, var(--white));margin-top:1.25rem;overflow:hidden}.highlights summary{cursor:pointer;letter-spacing:.06em;text-transform:uppercase;color:var(--c1);align-items:center;gap:.4rem;padding:.8rem 1.25rem;font-size:.85rem;font-weight:700;list-style:none;display:flex}.highlights summary::-webkit-details-marker{display:none}.highlights .toggle{flex:none;width:.8rem;height:.8rem;margin-left:auto;position:relative}.highlights .toggle:before,.highlights .toggle:after{content:"";background:currentColor;margin:auto;transition:transform .28s cubic-bezier(.2,0,0,1);position:absolute;inset:0}.highlights .toggle:before{height:2px}.highlights .toggle:after{width:2px}.highlights[open]:not(.closing) .toggle:after{transform:scaleY(0)}.highlights .bullets{transition:opacity .28s}.highlights.closing .bullets{opacity:0}.highlights[open] .bullets{animation:.28s highlights-in}@keyframes highlights-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.highlights .toggle:before,.highlights .toggle:after,.highlights .bullets{transition:none;animation:none}}.highlights summary:hover{background:var(--c3);color:var(--on-c3)}.highlights summary:focus-visible{outline:2px solid var(--c2);outline-offset:2px}.highlights .count{color:var(--muted);font-weight:600}.highlights .bullets{gap:.7rem;padding:.25rem 1.25rem 1.1rem}.highlights .bullets li:before{background:var(--c1)}.entry .highlights+p{margin-top:1rem}.note{color:var(--muted);margin-top:1.5rem}.projects-section h2{margin-bottom:2rem}.posters{gap:1rem;display:grid}.poster{grid-template-columns:1fr;align-items:center;gap:1.25rem;padding:1.75rem;display:grid}@media (width>=48rem){.poster{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) auto;gap:2.5rem;min-height:11rem;padding:2rem 2.25rem}}.poster h3{letter-spacing:-.03em;font-size:clamp(2rem,3vw,2.6rem);font-weight:800}.poster h3 a{text-decoration:none}.poster h3 a:hover{color:inherit;text-underline-offset:.12em;background:0 0;text-decoration:underline 3px}.kicker{margin-bottom:.4rem;font-size:.95rem;font-weight:600}.hook{max-width:30ch;font-size:clamp(1.1rem,1.5vw,1.35rem);font-weight:500;line-height:1.3}.btn-outline{color:inherit;background:0 0;border-color:currentColor;justify-self:start}.btn-outline:hover{background:currentColor}.tone-blue .btn-outline:hover{background:var(--on-c1);color:var(--c1)}.tone-yellow .btn-outline:hover{background:var(--on-c2);color:var(--c2)}.tone-black .btn-outline:hover{background:var(--c1);color:var(--white)}.tone-blue{background:var(--c1);color:var(--on-c1)}.tone-yellow{background:var(--c2);color:var(--on-c2)}.tone-black,.tone-blue a:hover{background:var(--c3);color:var(--on-c3)}.tone-yellow a:hover,.tone-black a:hover{background:var(--c1);color:var(--white)}.project-head{padding-block:clamp(3rem,7vw,5.5rem)}.project-head h1{letter-spacing:-.04em;font-size:clamp(2.8rem,7vw,5.5rem);font-weight:800;line-height:.95}.project-head .hook{max-width:40ch;margin-top:1.25rem}.project-links{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.prose p{max-width:62ch}.prose p+p{margin-top:1rem}.bullets{gap:.9rem;max-width:62ch;display:grid}.bullets li{padding-left:1.4rem;position:relative}.bullets li:before{content:"";background:var(--c2);width:.7rem;height:.7rem;position:absolute;top:.55em;left:0}.bullets .nested{gap:.6rem;margin-top:.7rem}.bullets .nested li:before{background:var(--c1);width:.5rem;height:.5rem;top:.6em}.project-head .hook a{text-underline-offset:.15em;text-decoration:underline 2px}.others{gap:1rem;display:grid}.poster-mini{flex-direction:column;align-items:flex-start;gap:.2rem;min-height:0;padding:1.25rem 1.5rem;display:flex}.poster-mini strong{letter-spacing:-.02em;font-size:1.5rem;font-weight:800}.poster-mini:hover{background:var(--c1);color:var(--white)}.poster-mini .kicker{margin:0}.flow{flex-wrap:wrap;gap:.2rem 0;line-height:1.15;display:flex}.flow span:after{content:"/";color:var(--c2);margin-inline:.45em;font-weight:800}.flow span:last-child:after{content:none}.flow-more{margin-top:1.25rem;font-size:clamp(1.1rem,1.8vw,1.5rem);font-weight:600}.flow-more span:after{color:var(--muted);font-weight:400}.stack-groups{margin:0;display:grid}.stack-group{border-top:2px solid var(--black);grid-template-columns:1fr;align-items:baseline;gap:.35rem 1.5rem;padding-block:1rem;display:grid}.stack-group:first-child{border-top:0;padding-top:.4rem}@media (width>=40rem){.stack-group{grid-template-columns:10rem minmax(0,1fr)}}.stack-group dt{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.85rem;font-weight:700}.stack-group dd{margin:0;font-size:clamp(1.1rem,1.8vw,1.45rem);font-weight:600}.stack-group dd span:after{color:var(--muted);font-weight:400}.stack-group .core{color:var(--c1);font-weight:800}.contact{background:var(--c3);color:var(--on-c3);padding-block:clamp(3rem,7vw,6rem)}.contact h2{max-width:14em;font-size:clamp(2.2rem,4.6vw,4.2rem);font-weight:800}.contact-lede{max-width:40ch;margin-top:1rem;font-size:1.15rem}.big-mail{letter-spacing:-.02em;text-underline-offset:.15em;word-break:break-all;margin-top:1.25rem;font-size:clamp(1.2rem,3.2vw,2.6rem);font-weight:600;text-decoration:underline 3px;display:inline-block}.big-mail:hover{background:var(--c1);color:var(--white)}.contact-links{flex-wrap:wrap;gap:.75rem 1.5rem;margin-top:2rem;font-weight:700;display:flex}.contact-links a{border-bottom:2px solid var(--c1)}.contact-links a:hover{background:var(--c1);color:var(--white)}.foot{background:var(--black);color:var(--white);padding-block:1.25rem;font-size:.9rem}.foot a{border-bottom:1px solid}.foot a:hover{background:var(--c3);color:var(--on-c3);border-color:#0000}.foot .wrap{flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem;display:flex}
