@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;font-stretch:75% 100%;src:url(/_astro/bricolage-grotesque-vietnamese-wdth-normal.BKE08zty.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;font-stretch:75% 100%;src:url(/_astro/bricolage-grotesque-latin-ext-wdth-normal.DoS1gVTC.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;font-stretch:75% 100%;src:url(/_astro/bricolage-grotesque-latin-wdth-normal.Dtb2a5nO.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:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_astro/instrument-sans-latin-ext-wght-normal.B5bTHO_g.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:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_astro/instrument-sans-latin-wght-normal.BbzFLZTg.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{--fog:#e9ecf2;--paper:#f7f8fb;--ink:#10142b;--cobalt:#2438f5;--marker:#f4d94a;--mute:#555a73;--line:#10142b29;--display:"Bricolage Grotesque Variable", "Arial Narrow", sans-serif;--body:"Instrument Sans Variable", system-ui, sans-serif;--gutter:clamp(1.1rem, 4vw, 3.5rem);--nav-h:4rem}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:var(--nav-h);overflow-x:clip}body{background:var(--fog);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;margin:0;font-size:1.0625rem;line-height:1.55;overflow-x:clip}h1,h2,h3,p,ul,ol,dl,dd{margin:0}ul,ol{padding:0;list-style:none}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}:focus-visible{outline:3px solid var(--cobalt);outline-offset:3px;border-radius:4px}.skip{z-index:100;background:var(--ink);color:var(--paper);border-radius:8px;padding:.6rem 1rem;position:absolute;top:.5rem;left:-999px}.skip:focus{left:.5rem}.nav{z-index:50;height:var(--nav-h);padding-inline:var(--gutter);color:var(--ink);grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;transition:transform .35s,background-color .25s;display:grid;position:fixed;inset:0 0 auto}.nav.is-scrolled{-webkit-backdrop-filter:blur(14px);background:#e9ecf2db}.nav.is-hidden{transform:translateY(-100%)}.nav__links{grid-column:2;gap:clamp(1rem,2.4vw,2.2rem);font-size:.95rem;display:flex}.nav__links a{padding-block:.4rem;text-decoration:none}.nav__links a:hover{text-decoration:underline}.nav__lang{border:1px solid var(--ink);letter-spacing:.02em;border-radius:999px;grid-column:3;justify-self:end;padding:3px;font-size:.8rem;font-weight:600;text-decoration:none;display:inline-flex}.nav__lang span{border-radius:999px;padding:.28rem .7rem}.nav__lang span.on{background:var(--ink);color:var(--fog)}@media (width<=720px){.nav{grid-template-columns:minmax(0,1fr) auto;gap:.6rem}.nav__links{grid-column:1;justify-content:space-between;gap:.3rem;min-width:0;max-width:24rem;font-size:clamp(.64rem,3.2vw,.9rem)}.nav__links a{white-space:nowrap;padding-block:.7rem}.nav__lang{grid-column:2;font-size:.72rem}.nav__lang span{padding:.2rem .42rem}}.hero{min-height:100svh;padding:calc(var(--nav-h) + 1rem) var(--gutter) clamp(1.5rem, 4vh, 3rem);flex-direction:column;justify-content:space-between;gap:2rem;display:flex;position:relative;overflow:clip}.hero__canvas{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.hero__name{font-family:var(--display);letter-spacing:-.035em;text-transform:uppercase;margin-top:auto;margin-bottom:auto;margin-left:-.04em;font-size:min(22vw,34svh);font-weight:800;line-height:.92}.hero__line{width:fit-content;display:block}@media (width<=640px) and (orientation:portrait){.hero{min-height:0;padding-top:calc(var(--nav-h) + 1.25rem);justify-content:flex-start;gap:1.75rem;padding-bottom:.5rem}.hero__name{margin-block:0;line-height:1}}.hero.is-live .hero__name{color:#0000}.hero__foot{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) auto;align-items:end;gap:1.5rem 3rem;display:grid;position:relative}.hero__lede{font-family:var(--display);letter-spacing:-.015em;max-width:24ch;font-size:clamp(1.35rem,2.3vw,2.1rem);font-weight:500;font-stretch:85%;line-height:1.15}.hero__meta{color:var(--mute);font-size:.95rem}.hero__cta{flex-wrap:wrap;gap:.6rem;display:flex}@media (width<=900px){.hero__foot{grid-template-columns:1fr}.hero__lede{max-width:28ch}}.btn{border:1px solid var(--ink);white-space:nowrap;border-radius:999px;align-items:center;padding:.8rem 1.25rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:background-color .2s,color .2s;display:inline-flex}.btn:hover{background:var(--ink);color:var(--fog)}.btn--solid{background:var(--cobalt);border-color:var(--cobalt);color:#fff}.btn--solid:hover{background:var(--ink);border-color:var(--ink)}.statement{padding:clamp(5rem, 14vh, 11rem) var(--gutter);font-family:var(--display);letter-spacing:-.022em;gap:1.2em;font-size:clamp(1.7rem,4.4vw,4.1rem);font-weight:500;font-stretch:85%;line-height:1.12;display:grid}.statement p{max-width:21em}.statement p+p{max-width:17em;margin-left:auto}@media (width<=640px) and (orientation:portrait){.statement{padding-top:3rem}}mark{color:inherit;background:linear-gradient(var(--marker), var(--marker)) no-repeat 0 62% / var(--fill,100%) 72%;-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:.12em;margin-inline:-.06em;padding-inline:.12em}.section-head{padding:clamp(4rem, 10vh, 7rem) var(--gutter) clamp(2rem, 5vh, 3.5rem);grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:end;gap:1rem 3rem;display:grid}.section-head h2{font-family:var(--display);letter-spacing:-.03em;text-transform:uppercase;font-size:clamp(2.6rem,8vw,7rem);font-weight:800;font-stretch:80%;line-height:.9}.section-head p{color:var(--mute);max-width:38ch}.section-head--dark p{color:#e9ecf2b3}@media (width<=720px){.section-head{grid-template-columns:1fr}}.work{background:var(--ink);color:var(--fog);border-radius:clamp(1.25rem,3vw,2.5rem) clamp(1.25rem,3vw,2.5rem) 0 0}.case{--bg:var(--ink);--fg:var(--fog);--soft:#e9ecf2ad;--rule:#e9ecf238;--hot:var(--marker);--panel:#e9ecf212;background:var(--bg);color:var(--fg);border-top:1px solid var(--rule);border-radius:clamp(1.25rem,3vw,2.5rem) clamp(1.25rem,3vw,2.5rem) 0 0}.case--ventiur{--bg:var(--cobalt);--fg:#fff;--soft:#fffc;--rule:#ffffff4d;--panel:#ffffff1f}.case--smartzap{--bg:var(--fog);--fg:var(--ink);--soft:var(--mute);--rule:var(--line);--hot:var(--cobalt);--panel:#fff}.case--beatfit{--bg:var(--marker);--fg:var(--ink);--soft:#10142bbf;--rule:#10142b40;--hot:var(--cobalt);--panel:#ffffff8c}.case--fintz{--rule:transparent}.case__inner{padding:clamp(2.5rem, 7vh, 4.5rem) var(--gutter);grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:center;gap:clamp(2rem,5vw,5rem);display:grid}.case__kind{color:var(--soft);border-bottom:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;gap:.25rem 1.5rem;padding-bottom:.9rem;font-size:.95rem;display:flex}.case__name{font-family:var(--display);letter-spacing:-.03em;text-transform:uppercase;margin:1.4rem 0 1.2rem;font-size:clamp(3.4rem,9.5vw,8.5rem);font-weight:800;font-stretch:75%;line-height:.88}.case__summary{max-width:46ch;font-size:clamp(1.1rem,1.5vw,1.3rem);line-height:1.4}.case__points{max-width:58ch;color:var(--soft);gap:.5rem;margin-top:1.3rem;font-size:.98rem;display:grid}.case__points li{padding-left:1.1rem;position:relative}.case__points li:before{content:"";background:var(--hot);border-radius:1px;width:.45rem;height:.45rem;position:absolute;top:.62em;left:0}.case__facts{border-top:1px solid var(--rule);grid-template-columns:1fr 1fr;gap:1rem 2rem;margin-top:1.6rem;padding-top:1rem;font-size:.92rem;display:grid}.case__facts dt{color:var(--soft);margin-bottom:.15rem}.case__facts dd{font-weight:500}@media (width<=960px){.case__inner{grid-template-columns:minmax(0,1fr)}.case__facts{grid-template-columns:1fr}}@media (width>=961px) and (height>=780px){.case{align-items:center;min-height:100svh;display:grid;position:sticky;top:0}}.art{background:var(--panel);border:1px solid var(--rule);border-radius:1.25rem;grid-template-columns:minmax(0,1fr);align-content:center;min-height:clamp(16rem,34vw,26rem);padding:clamp(1.1rem,2.4vw,2rem);font-size:.85rem;display:grid}.art__label{margin-top:.8rem;font-weight:600}.art-dd{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:1.2rem}.art-dd__pages{padding-top:.5rem;position:relative}.art-dd__pages .art__label{margin-top:2.2rem;position:relative}.sheet{background:var(--fog);width:78%;transform:translate(calc(var(--i) * 7%), calc(var(--i) * 6px)) rotate(calc((var(--i) - 2) * 2.5deg));border-radius:6px;gap:5px;padding:.7rem .6rem;display:grid;box-shadow:0 6px 18px #00000047}.sheet+.sheet{margin-top:-78%}.sheet i{background:#10142b38;border-radius:2px;height:4px;display:block}.sheet i.hot{background:var(--marker);height:8px}.art-dd__steps{counter-reset:s;gap:.45rem;display:grid}.art-dd__steps li{counter-increment:s;border:1px solid var(--rule);white-space:nowrap;border-radius:999px;padding:.3rem .8rem}.art-dd__steps li:before{content:counter(s) " ";color:var(--marker);margin-right:.3rem;font-weight:700}.art-dd__out .grid{grid-template-columns:repeat(4,1fr);gap:3px;display:grid}.art-dd__out .grid i{background:#e9ecf224;border-radius:2px;height:1.25rem}.art-dd__out .grid i.head{background:#e9ecf280}.art-dd__out .grid i.hot{background:var(--marker)}@media (width<=520px){.art-dd{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.art-dd__steps{display:none}}.art-vt{gap:.9rem}.art-vt__bar{align-items:center;gap:.6rem;display:flex}.art-vt__search{min-width:0;color:var(--mute);white-space:nowrap;text-overflow:ellipsis;background:#fff;border-radius:999px;flex:1;padding:.6rem 1rem;overflow:hidden}.art-vt__count{white-space:nowrap;font-weight:700}.art-vt__chips{gap:.4rem;display:flex}.art-vt__chips span{border:1px solid var(--rule);border-radius:999px;padding:.2rem .75rem}.art-vt__chips span.on{background:var(--marker);border-color:var(--marker);color:var(--ink);font-weight:600}.art-vt__rows{gap:.45rem;display:grid}.art-vt__rows li{background:#ffffff24;border-radius:8px;gap:6px;padding:.7rem .8rem;display:grid;position:relative}.art-vt__rows b,.art-vt__rows i{background:#fff;border-radius:3px;height:6px;display:block}.art-vt__rows i{opacity:.45;height:4px}.art-vt__rows em{background:var(--marker);color:var(--ink);border-radius:999px;padding:.1rem .55rem;font-size:.72rem;font-style:normal;font-weight:600;position:absolute;top:50%;right:.6rem;translate:0 -50%}.art-sz{justify-items:start;gap:.55rem;font-size:.92rem}.bubble{background:var(--fog);border-radius:1rem 1rem 1rem .25rem;max-width:82%;padding:.6rem .9rem;line-height:1.35}.bubble--me{background:var(--cobalt);color:#fff;border-radius:1rem 1rem .25rem;justify-self:end}.art-sz .art__label{background:var(--marker);border-radius:999px;justify-self:center;padding:.2rem .9rem}.art-bf{justify-items:center}.phone{background:var(--ink);width:min(100%,15.5rem);color:var(--fog);border-radius:2rem;padding:1.6rem 1.1rem 1.2rem;box-shadow:0 18px 40px #10142b4d}.phone__eyebrow{color:#e9ecf299}.phone__title{font-family:var(--display);margin:.2rem 0 1rem;font-size:1.9rem;font-weight:800;font-stretch:80%;line-height:1}.phone li{border-top:1px solid #e9ecf229;justify-content:space-between;gap:.5rem;padding:.6rem 0;display:flex}.phone li span:last-child{color:#e9ecf299;white-space:nowrap}.phone__btn{background:var(--marker);color:var(--ink);text-align:center;border-radius:999px;margin-top:.9rem;padding:.55rem;font-weight:700}.art-fz{gap:1.4rem}.art-fz ol{flex-wrap:wrap;align-items:center;gap:.5rem 0;display:flex}.art-fz li{border:1px solid var(--rule);white-space:nowrap;border-color:#e9ecf24d;border-radius:8px;padding:.4rem .75rem}.art-fz li.on{background:var(--marker);border-color:var(--marker);color:var(--ink);font-weight:600}.art-fz li:not(:last-child):after{content:"";vertical-align:middle;background:#e9ecf280;width:1.1rem;height:1px;margin-left:.8rem;margin-right:-1.9rem;display:inline-block}.art-fz li:not(:last-child){margin-right:1.15rem}.art-fz svg{width:100%;height:6rem;overflow:visible}.art-fz polyline{fill:none;stroke:#7d8bff;stroke-width:2.5px;vector-effect:non-scaling-stroke;stroke-linejoin:round}.more{background:var(--fog);padding-bottom:clamp(3rem,8vh,6rem);position:relative}.more__group{padding-inline:var(--gutter);margin-top:2.5rem}.more__group h3{color:var(--mute);border-bottom:1px solid var(--ink);padding-bottom:.7rem;font-size:.95rem;font-weight:600}.row{border-bottom:1px solid var(--line);grid-template-columns:minmax(10rem,1.1fr) minmax(0,2.4fr) minmax(0,1.2fr) 7rem;align-items:baseline;gap:.25rem 2rem;padding:1rem 0;transition:background-color .15s;display:grid}.row:hover{background:var(--paper)}.row__name{font-family:var(--display);letter-spacing:-.01em;font-size:clamp(1.25rem,1.9vw,1.6rem);font-weight:700;font-stretch:85%;line-height:1.1}.row__stack,.row__year{color:var(--mute);font-size:.92rem}.row__year{text-align:right;font-variant-numeric:tabular-nums}@media (width<=900px){.row{grid-template-columns:1fr auto}.row__what,.row__stack{grid-column:1/-1}.row__year{grid-area:1/2}}.more__foot{padding:2rem var(--gutter) 0;color:var(--mute)}.more__foot a{color:var(--ink);margin-left:.3em;font-weight:600}.xp{background:var(--paper);padding-bottom:clamp(3rem,8vh,6rem)}.xp__list{padding-inline:var(--gutter)}.xp__item{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(0,2.2fr);gap:.5rem 3rem;padding:1.8rem 0;display:grid}.xp__period{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:clamp(1.15rem,1.8vw,1.5rem);font-weight:600;font-stretch:85%}.xp__item h3{font-family:var(--display);letter-spacing:-.015em;font-size:clamp(1.5rem,2.6vw,2.2rem);font-weight:700;font-stretch:85%;line-height:1.1}.xp__role{color:var(--mute);margin-top:.25rem}.xp__item ul{gap:.4rem;max-width:64ch;margin-top:.9rem;display:grid}@media (width<=720px){.xp__item{grid-template-columns:1fr}}.skills{padding-bottom:clamp(3rem,8vh,6rem)}.skills__grid{padding-inline:var(--gutter);grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:2rem 3rem;display:grid}.skills__grid h3{color:var(--mute);border-bottom:1px solid var(--ink);margin-bottom:.7rem;padding-bottom:.7rem;font-size:.95rem;font-weight:600}.skills__grid li{padding:.22rem 0;font-weight:500}.skills__gh{padding:2.5rem var(--gutter) 0;font-weight:600}.contact{background:var(--cobalt);color:#fff;padding:clamp(4rem, 12vh, 8rem) var(--gutter) 2rem;border-radius:clamp(1.25rem,3vw,2.5rem) clamp(1.25rem,3vw,2.5rem) 0 0}.contact h2{font-family:var(--display);letter-spacing:-.03em;text-transform:uppercase;max-width:11ch;font-size:clamp(2.8rem,10vw,9.5rem);font-weight:800;font-stretch:78%;line-height:.88}.contact>p{color:#ffffffdb;max-width:46ch;margin-top:1.8rem;font-size:1.15rem}.contact__mail{font-family:var(--display);letter-spacing:-.02em;text-decoration-color:var(--marker);text-underline-offset:.18em;overflow-wrap:anywhere;margin-top:2rem;font-size:clamp(1.3rem,4.2vw,3.4rem);font-weight:600;font-stretch:85%;text-decoration-thickness:.12em;display:inline-block}.contact__mail:hover{color:var(--marker)}.contact__mail:focus-visible,.contact__links a:focus-visible{outline-color:var(--marker)}.contact__links{flex-wrap:wrap;gap:.6rem 2rem;margin-top:2.5rem;font-weight:600;display:flex}.contact__foot{color:#ffffffbf;border-top:1px solid #ffffff4d;margin-top:clamp(3rem,9vh,6rem);padding-top:1.2rem;font-size:.9rem}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
