@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./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(./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(./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:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./hanken-grotesk-cyrillic-ext-wght-normal-D_UHSL_T.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:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./hanken-grotesk-vietnamese-wght-normal-CHiFlh_0.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:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./hanken-grotesk-latin-ext-wght-normal-Dg-wlmqe.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:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./hanken-grotesk-latin-wght-normal-CaVRRdDk.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(./ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(./ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(./ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(./ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(./ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(./ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(./ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(./ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(./ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(./ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff");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:#0a0b0d;--bg2:#111317;--ink:#f2efe8;--muted:#9a9ca3;--dim:#62656d;--line:#ffffff14;--line2:#ffffff24;--gold:#f3b54a;--teal:#3fd1b8}*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font:400 17px/1.65 Hanken Grotesk Variable,system-ui,sans-serif;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:50;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.glow{filter:blur(90px);pointer-events:none;border-radius:50%;position:absolute}.glow--a{background:#f3b54a2e;width:560px;height:560px;animation:14s ease-in-out infinite alternate drift;top:-160px;right:-120px}.glow--b{background:#3fd1b81f;width:460px;height:460px;animation:18s ease-in-out infinite alternate-reverse drift;top:300px;left:-220px}@keyframes drift{to{transform:translate(-60px,50px)scale(1.1)}}.mono{font-family:IBM Plex Mono,monospace}a{color:inherit;text-decoration:none}.wrap{max-width:1180px;margin:0 auto;padding:0 24px;position:relative}.nav{z-index:5;justify-content:space-between;align-items:center;height:76px;display:flex;position:relative}.logo{align-items:center;gap:12px;font-weight:600;display:flex}.logo__chip{background:#f2efe8;border-radius:11px;place-items:center;width:38px;height:38px;display:grid;box-shadow:0 0 0 1px #f3b54a59,0 8px 24px -10px #f3b54a80}.logo__chip img{width:32px;height:32px;display:block}.nav nav{color:var(--muted);align-items:center;gap:26px;font-size:15px;display:flex}.nav nav a:hover{color:var(--ink)}.btn{border-radius:12px;align-items:center;gap:10px;padding:13px 22px;font-size:15px;font-weight:600;transition:transform .2s,box-shadow .2s,border-color .2s;display:inline-flex}.btn svg{fill:currentColor;width:18px;height:18px}.btn--gold{background:var(--gold);color:#15110a;box-shadow:inset 0 0 0 1px #fff3,0 12px 40px -12px #f3b54a99}.btn--gold:hover{transform:translateY(-2px)}.btn--ghost{border:1px solid var(--line2);background:#ffffff08}.btn--ghost:hover{border-color:#ffffff4d}.nav .btn{padding:9px 16px}.lang-switch{letter-spacing:.08em;color:var(--muted);border:1px solid var(--line2);border-radius:8px;padding:6px 9px;font-size:12px}.lang-switch:hover{color:var(--ink);border-color:#ffffff4d}.hero{grid-template-columns:1.05fr .95fr;align-items:center;gap:56px;padding-block:40px;display:grid}.hero>*{min-width:0}.hero__text{padding-bottom:40px}.kicker{letter-spacing:.14em;text-transform:uppercase;color:var(--gold);align-items:center;gap:10px;font-size:12px;display:flex}.kicker:before{content:"";background:var(--gold);width:28px;height:1px}h1{letter-spacing:-.05em;margin:24px 0 22px;font:700 clamp(48px,7vw,96px)/.94 Bricolage Grotesque Variable,sans-serif}h1 em{background:linear-gradient(100deg, var(--gold) 10%, #ffe3a6 45%, var(--teal) 95%);color:#0000;-webkit-background-clip:text;background-clip:text;font-style:normal}.lead{color:var(--muted);max-width:30em;font-size:19px}.lead strong{color:var(--ink);font-weight:600}.actions{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.facts{flex-wrap:wrap;gap:30px;margin-top:40px;display:flex}.facts div{border-left:1px solid var(--line2);padding-left:14px}.facts b{letter-spacing:-.03em;font:700 28px/1.05 Bricolage Grotesque Variable,sans-serif;display:block}.facts span{color:var(--dim);font-size:13px}.photo{align-self:center;margin-bottom:60px;position:relative}.frame{aspect-ratio:5/4;border:1px solid var(--line2);background:radial-gradient(70% 70% at 55% 35%,#f3b54a61,#f3b54a0f 60%,#0000 75%),linear-gradient(160deg,#1a1b20,#0e0f12);border-radius:28px;position:relative;overflow:hidden;box-shadow:0 60px 100px -50px #000000e6,0 0 0 1px #f3b54a0f}.frame:before{content:"";background-image:linear-gradient(#ffffff09 1px,#0000 1px),linear-gradient(90deg,#ffffff09 1px,#0000 1px);background-size:32px 32px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle at 50% 40%,#000,#0000 75%);mask-image:radial-gradient(circle at 50% 40%,#000,#0000 75%)}.frame:after{content:"";background:linear-gradient(#0000,#0a0b0dd9);height:28%;position:absolute;inset:auto 0 0}.frame img{object-fit:cover;object-position:50% 100%;filter:saturate(.95)contrast(1.03);width:100%;height:100%;display:block;position:relative}.badge{z-index:2;border:1px solid var(--line2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#141519e6;border-radius:14px;padding:10px 14px;font-size:13px;animation:7s ease-in-out infinite float;position:absolute;box-shadow:0 20px 40px -20px #000c}.badge b{color:var(--ink);font:600 15px Bricolage Grotesque Variable,sans-serif;display:block}.badge span{color:var(--dim);letter-spacing:.06em;text-transform:uppercase;font-family:IBM Plex Mono,monospace;font-size:11px}.badge--1{top:14%;left:-22px}.badge--2{animation-delay:-3s;bottom:-22px;right:26px}.badge i{background:var(--teal);width:7px;height:7px;box-shadow:0 0 10px var(--teal);border-radius:50%;margin-right:6px;display:inline-block}@keyframes float{50%{translate:0 -10px}}.rise{opacity:0;animation:.9s cubic-bezier(.2,.8,.2,1) forwards rise;transform:translateY(18px)}@keyframes rise{to{opacity:1;transform:none}}section.block{padding-block:100px;position:relative}.sec-k{letter-spacing:.14em;text-transform:uppercase;color:var(--dim);font-size:12px}h2{letter-spacing:-.04em;max-width:16em;margin:14px 0 48px;font:700 clamp(34px,4.4vw,56px)/1.02 Bricolage Grotesque Variable,sans-serif}h2 span{color:var(--dim)}.about{grid-template-columns:1fr 1fr;align-items:center;gap:56px;display:grid}.about>*{min-width:0}.about p{color:var(--muted);font-size:18px}.about p+p{margin-top:16px}.about strong{color:var(--ink);font-weight:600}.term{border:1px solid var(--line2);background:linear-gradient(160deg,#22242af0,#101115f0);border-radius:18px;overflow:hidden;box-shadow:0 50px 90px -40px #000000e6}.term__bar{border-bottom:1px solid var(--line);align-items:center;gap:7px;padding:14px 16px;display:flex}.term__bar i{border-radius:50%;width:11px;height:11px}.term__bar i:first-child{background:#e0655a}.term__bar i:nth-child(2){background:#e9b949}.term__bar i:nth-child(3){background:#5cc27b}.term__bar span{color:var(--dim);margin-left:10px;font-size:12px}.term pre{color:var(--muted);white-space:pre-wrap;min-height:300px;margin:0;padding:20px 22px 26px;font:14px/1.75 IBM Plex Mono,monospace}.term .p{color:var(--teal)}.term .k{color:var(--gold)}.term .v{color:var(--ink)}.term .c{color:var(--dim)}.cursor{background:var(--gold);vertical-align:-3px;width:8px;height:1.1em;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.card{background:var(--bg2);border:1px solid var(--line);border-radius:22px;padding:30px;position:relative;overflow:hidden}.card:before{content:"";background:radial-gradient(420px circle at var(--x,50%) var(--y,0%), #f3b54a1f, transparent 45%);opacity:0;pointer-events:none;transition:opacity .3s;position:absolute;inset:0}.card:hover:before{opacity:1}.card .yr{color:var(--gold);font:500 13px IBM Plex Mono,monospace}.card h3{letter-spacing:-.02em;margin:12px 0 8px;font:600 24px/1.2 Bricolage Grotesque Variable,sans-serif}.card p{color:var(--muted);font-size:16px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chips span{border:1px solid var(--line2);color:#cfccc4;background:#ffffff0a;border-radius:8px;padding:5px 11px;font-size:13px}.services{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.services .card h3{margin-top:0;font-size:21px}.services__note{color:var(--muted);margin-top:24px;font-size:16px}.services__note .link,.role a.link{color:var(--gold);border-bottom:1px solid #f3b54a59}@media (width<=1000px){.services{grid-template-columns:1fr 1fr}}@media (width<=620px){.services{grid-template-columns:1fr}}.xp{gap:16px;display:grid}.role{grid-template-columns:220px 1fr;gap:32px;display:grid}.role__meta .yr{display:block}.role__meta .org{color:var(--dim);margin-top:6px;font-size:14px}.role h3{margin-top:0}.role ul{gap:10px;margin:14px 0 0;padding:0;list-style:none;display:grid}.role li{color:var(--muted);padding-left:22px;font-size:16px;position:relative}.role li:before{content:"";background:var(--gold);width:10px;height:1px;position:absolute;top:.7em;left:0}.role .chips{margin-top:16px}.now{letter-spacing:.08em;text-transform:uppercase;color:var(--teal);vertical-align:4px;border:1px solid #3fd1b859;border-radius:999px;margin-left:8px;padding:2px 9px;font:500 11px IBM Plex Mono,monospace;display:inline-block}.role a.link{color:var(--gold);border-bottom:1px solid #f3b54a59}.work{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.work .card{flex-direction:column;min-height:330px;display:flex}.ico{background:#f3b54a14;border:1px solid #f3b54a40;border-radius:14px;place-items:center;width:56px;height:56px;margin-bottom:22px;display:grid}.ico svg{fill:none;width:28px;height:28px;stroke:var(--gold);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.work .kind{letter-spacing:.1em;text-transform:uppercase;color:var(--dim);font:500 11px IBM Plex Mono,monospace}.work h3{margin-top:6px}.work .chips{margin-top:auto;padding-top:20px}.work__note{color:var(--dim);margin-top:22px;font-size:14px}.tl{padding-left:36px;position:relative}.tl:before{content:"";background:linear-gradient(var(--gold), var(--teal) 70%, transparent);width:1px;position:absolute;top:8px;bottom:8px;left:8px}.ev{border-bottom:1px solid var(--line);grid-template-columns:140px 1fr;gap:28px;padding:24px 0;display:grid;position:relative}.ev:before{content:"";background:var(--bg);border:2px solid var(--gold);border-radius:50%;width:13px;height:13px;position:absolute;top:32px;left:-34px;box-shadow:0 0 16px #f3b54a99}.ev:last-child{border-bottom:0}.ev__y{color:var(--gold);padding-top:3px;font:500 15px IBM Plex Mono,monospace}.ev h3{letter-spacing:-.02em;margin-bottom:4px;font:600 22px/1.2 Bricolage Grotesque Variable,sans-serif}.ev p{color:var(--muted);max-width:40em}.ev--now:before{background:var(--gold);animation:2s infinite ping}@keyframes ping{50%{box-shadow:0 0 0 8px #f3b54a26,0 0 16px #f3b54a99}}.edu{grid-template-columns:1fr 1fr;gap:16px;display:grid}.skills{grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px;display:grid}h4{letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin-bottom:14px;font:500 12px IBM Plex Mono,monospace}.langs{grid-template-columns:repeat(5,1fr);gap:14px;margin-top:16px;display:grid}.lang b{font:600 18px Bricolage Grotesque Variable,sans-serif;display:block}.lang span{color:var(--dim);font-size:13px}.meter{gap:4px;margin-top:10px;display:flex}.meter i{background:#ffffff14;border-radius:3px;flex:1;height:5px}.meter i.on{background:linear-gradient(90deg, var(--gold), #ffd98a)}.mission{text-align:center;border-block:1px solid var(--line);padding:130px 0;position:relative;overflow:hidden}.mission .glow{background:#f3b54a24;width:760px;height:400px;top:50%;left:50%;translate:-50% -50%}.mission blockquote{letter-spacing:-.04em;max-width:13em;margin:18px auto 44px;font:700 clamp(36px,5.4vw,70px)/1.02 Bricolage Grotesque Variable,sans-serif;position:relative}.goals{text-align:left;grid-template-columns:repeat(3,1fr);gap:16px;display:grid;position:relative}.goals h3{margin-top:0;font-size:21px}.goals .n{color:var(--teal);margin-bottom:14px;font:500 13px IBM Plex Mono,monospace;display:block}.cta{text-align:center;padding-block:120px}.cta h2{margin:16px auto 18px;font-size:clamp(40px,6vw,76px)}.cta p{color:var(--muted);max-width:30em;margin:0 auto 34px;font-size:18px}.cta .actions{justify-content:center}footer{border-top:1px solid var(--line);color:var(--dim);padding:28px 0;font-size:13px}footer .wrap{justify-content:space-between;display:flex}@media (width<=1000px){.work{grid-template-columns:1fr 1fr}.langs{grid-template-columns:repeat(3,1fr)}}@media (width<=920px){.hero{grid-template-columns:1fr;min-height:0}.hero__text{padding-bottom:0}.photo{width:100%;max-width:520px;margin:10px auto 40px}.badge--1{left:-8px}.about,.edu,.skills,.goals,.role{grid-template-columns:1fr}.role{gap:10px}.ev{grid-template-columns:1fr;gap:4px}.nav nav a:not(.btn):not(.lang-switch){display:none}}@media (width<=620px){.work{grid-template-columns:1fr}.work .card{min-height:0}.langs{grid-template-columns:1fr 1fr}footer .wrap{flex-direction:column;gap:6px}.facts{gap:20px}.badge{padding:8px 11px;font-size:12px}.badge b{font-size:13px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.rise{opacity:1;transform:none}}img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}body{-webkit-user-select:none;user-select:none}a[href^="https://wa.me"],a[href^=mailto\:],a[href^=tel\:],input,textarea,select,[contenteditable]{-webkit-user-select:text;user-select:text}
