@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-vietnamese-wdth-normal-rJmnGBSt.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-ext-wdth-normal-7khWdh9v.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-wdth-normal-DY7AcnAa.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(/assets/newsreader-vietnamese-opsz-normal-BjhtXyW2.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(/assets/newsreader-latin-ext-opsz-normal-BQn1nviT.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(/assets/newsreader-latin-opsz-normal-s-izfB6B.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}@property --seam{syntax:"<percentage>";inherits:true;initial-value:50%}:root{--wine:#7f011f;--wine-deep:#4a0012;--wine-muted:#a04250;--sand:#f5ebd0;--sand-dim:#e8d9b0;--sand-muted:#d4a99e;--font-display:"Archivo Variable", "Arial Black", "Helvetica Neue", sans-serif;--font-utility:"Archivo Variable", "Arial Narrow", "Helvetica Neue", sans-serif;--font-body:"Newsreader Variable", Georgia, "Times New Roman", serif;--t-small:.875rem;--t-body:1.1875rem;--t-lead:1.5rem;--t-h3:1.5rem;--t-h2:clamp(2.25rem, 3.5vw, 3.5rem);--gutter:clamp(16px, 4vw, 48px);--max:1240px;--header-h:56px;--section-pad:clamp(4.5rem, 9vw, 8rem)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:var(--header-h)}body{background:var(--sand);min-height:100vh;color:var(--wine);font-family:var(--font-body);font-size:var(--t-body);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;margin:0;line-height:1.6;overflow-x:clip}img{max-width:100%;height:auto;display:block}h1,h2,h3,p,ul,ol,figure{margin:0}ul,ol{padding:0;list-style:none}a{color:inherit}button{font:inherit;color:inherit}.icon{fill:none;stroke:currentColor;stroke-width:2.25px;stroke-linecap:square;stroke-linejoin:miter;flex:none;width:1.1em;height:1.1em}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:focus-visible{outline-offset:3px;outline:3px solid}.skip-link{z-index:100;background:var(--sand);color:var(--wine);font-family:var(--font-utility);padding:.6rem 1rem;font-weight:700;text-decoration:none;position:fixed;top:8px;left:8px;transform:translateY(-200%)}.skip-link:focus{transform:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.theme-wine{--bg:var(--wine);--fg:var(--sand);--fg-muted:var(--sand-muted);--rule:#f5ebd047;--fill-empty:#f5ebd038;background:var(--bg);color:var(--fg)}.theme-sand{--bg:var(--sand);--fg:var(--wine);--fg-muted:var(--wine-muted);--rule:#7f011f38;--fill-empty:var(--sand-dim);background:var(--bg);color:var(--fg)}body.mode-static{animation:1.1s cubic-bezier(.75,0,.2,1) .15s both seam-in}@keyframes seam-in{0%{--seam:100%}to{--seam:50%}}.btn{border:2px solid var(--fg);background:var(--fg);color:var(--bg);font-family:var(--font-utility);letter-spacing:.01em;box-shadow:5px 5px 0 0 var(--fg-muted);align-items:center;gap:.6em;padding:.85rem 1.35rem .8rem;font-size:1rem;font-weight:700;font-stretch:85%;line-height:1;text-decoration:none;transition:transform .14s,box-shadow .14s,background-color .14s,color .14s;display:inline-flex}.btn:hover{box-shadow:7px 7px 0 0 var(--fg-muted);transform:translate(-2px,-2px)}.btn:active{box-shadow:2px 2px 0 0 var(--fg-muted);transform:translate(3px,3px)}.btn:focus-visible{outline-color:var(--fg);outline-offset:5px}.topbar{z-index:50;height:var(--header-h);padding-inline:var(--gutter);background:linear-gradient(90deg, var(--wine) var(--seam), var(--sand) var(--seam));font-family:var(--font-utility);justify-content:space-between;align-items:center;gap:1rem;display:flex;position:fixed;inset:0 0 auto}.topbar.is-ready{transition:--seam .45s cubic-bezier(.65,0,.35,1)}.topbar.is-solid{--seam:100%}.nav{color:var(--wine);margin-left:auto;transition:color .3s}.topbar.is-solid .nav{color:var(--sand)}.nav__menu{display:none}.nav__list{gap:clamp(1rem,2.2vw,2rem);display:flex}.nav__link{text-underline-offset:7px;padding-block:.4rem;font-size:.9375rem;font-weight:650;font-stretch:80%;text-decoration:none;text-decoration-thickness:2px;display:block}.nav__link:hover,.nav__link[aria-current=true]{text-decoration-line:underline}.hero{min-height:clamp(560px,100svh,1100px);padding:calc(var(--header-h) + clamp(2rem, 6vh, 4rem)) var(--gutter) clamp(1.5rem, 4vh, 3rem);background:linear-gradient(90deg, var(--wine) var(--seam), var(--sand) var(--seam));grid-template:"intro photo"1fr"name name"/1fr 1fr;display:grid}.hero__intro{padding-right:var(--gutter);--bg:var(--wine);--fg:var(--sand);--fg-muted:var(--sand-muted);color:var(--sand);flex-direction:column;grid-area:intro;align-self:end;align-items:flex-start;gap:2rem;padding-bottom:.5rem;display:flex}.hero__tagline{text-wrap:balance;max-width:19ch;font-size:clamp(1.5rem,2.4vw,2.25rem);font-weight:400;line-height:1.22}.hero__photo{padding-left:var(--gutter);grid-area:photo;align-self:end}.hero__photo img{aspect-ratio:4/5;object-fit:cover;background:var(--sand-dim);width:min(100%,23rem,34vh);margin-left:auto}.hero__name{margin:clamp(1.5rem, 5vh, 3rem) calc(-1 * var(--gutter)) 0;padding-inline:var(--gutter);color:var(--sand);background:linear-gradient(90deg, var(--sand) var(--seam), var(--wine) var(--seam));-webkit-text-fill-color:transparent;font-family:var(--font-display);font-weight:900;font-stretch:125%;font-size:min(12rem, calc((100vw - 2 * var(--gutter)) / (var(--line-chars) * .98)));letter-spacing:-.025em;text-transform:uppercase;overflow-wrap:break-word;-webkit-background-clip:text;background-clip:text;grid-area:name;line-height:.84}.hero--no-photo{grid-template-areas:"intro intro""name name"}@media (forced-colors:active){.hero__name{-webkit-text-fill-color:CanvasText;background:0 0}}.s-section{padding-block:var(--section-pad)}.s-section__inner{max-width:var(--max);padding-inline:var(--gutter);gap:clamp(2rem,4vw,3.5rem) clamp(2rem,5vw,5rem);margin-inline:auto;display:grid}.s-heading{font-family:var(--font-display);font-weight:850;font-stretch:112%;font-size:var(--t-h2);letter-spacing:-.02em;overflow-wrap:break-word;text-wrap:balance;line-height:.95}@media (min-width:900px){.s-section__inner--split{grid-template-columns:minmax(0,4fr) minmax(0,8fr)}.s-section__inner--split>.s-heading{align-self:start}}.summary{gap:1.25em;max-width:36rem;display:grid}.summary p:first-child{font-size:clamp(1.375rem,2.2vw,1.75rem);line-height:1.38}.summary p+p{font-size:var(--t-body);color:var(--fg-muted)}.edu{border-top:2px solid var(--fg)}.edu__item{border-bottom:1px solid var(--rule);gap:.35rem;padding-block:clamp(1.5rem,3vw,2.25rem);display:grid}.edu__period{font-family:var(--font-utility);font-weight:600;font-stretch:80%;font-size:var(--t-small);color:var(--fg-muted);font-variant-numeric:tabular-nums}.edu__institution{font-family:var(--font-display);font-size:clamp(1.5rem,2.6vw,2.125rem);font-weight:800;font-stretch:112%;line-height:1.1}.edu__degree{font-size:var(--t-body)}.edu__note{color:var(--fg-muted);font-style:italic}.skills{grid-template-columns:repeat(auto-fill,minmax(min(100%,14rem),1fr));gap:2.5rem clamp(1.5rem,3vw,2.5rem);display:grid}.skills__title{border-bottom:3px solid var(--fg);font-family:var(--font-display);margin-bottom:.4rem;padding-bottom:.6rem;font-size:1.3125rem;font-weight:800;font-stretch:112%;line-height:1.15}.skills__item{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;gap:1rem;padding-block:.55rem;display:flex}.meter{flex:none;gap:3px;display:inline-flex}.meter__seg{background:var(--fill-empty);width:12px;height:7px}.meter__seg.is-on{background:var(--fg)}.projects{grid-template-columns:repeat(auto-fill,minmax(min(100%,22rem),1fr));gap:clamp(3rem,5vw,4.5rem) clamp(2rem,3.5vw,3rem);display:grid}.projects--single{grid-template-columns:minmax(0,46rem)}.project{flex-direction:column;transition:translate .38s cubic-bezier(.2,.8,.2,1);display:flex}.project__img{aspect-ratio:16/10;object-fit:cover;background:var(--wine-deep);width:100%;transition:box-shadow .38s cubic-bezier(.2,.8,.2,1)}@media (hover:hover){.project:hover{animation:3.2s ease-in-out .38s infinite project-float;translate:0 -10px}.project:hover .project__img{box-shadow:0 22px 34px -16px #1e0008bf}}.project:focus-within{translate:0 -10px}.project:focus-within .project__img{box-shadow:0 22px 34px -16px #1e0008bf}@keyframes project-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.project__img--empty{background:repeating-linear-gradient(-45deg, var(--wine-deep) 0 14px, transparent 14px 28px);border:1px solid var(--rule)}.project__body{flex-direction:column;flex:1;align-items:flex-start;gap:.85rem;padding-top:1.35rem;display:flex}.project__title{font-family:var(--font-display);font-size:clamp(1.5rem,2.4vw,1.875rem);font-weight:800;font-stretch:112%;line-height:1.1}.project__desc{max-width:34rem;color:var(--fg-muted)}.project__link{margin-top:auto}.project__body>:nth-last-child(2){margin-bottom:.6rem}.tags{flex-wrap:wrap;gap:.4rem;display:flex}.tags li{border:1px solid var(--rule);font-family:var(--font-utility);font-weight:600;font-stretch:80%;font-size:var(--t-small);padding:.22rem .55rem .2rem;line-height:1.3}.langs{flex-wrap:wrap;gap:2rem clamp(2rem,5vw,4.5rem);display:flex}.langs__item{gap:.2rem;display:grid}.langs__name{font-family:var(--font-display);font-size:clamp(1.75rem,3.2vw,2.5rem);font-weight:800;font-stretch:112%;line-height:1.05}.langs__level{font-style:italic;font-size:var(--t-body);color:var(--fg-muted)}.s-section--contact .s-section__body{justify-items:start;gap:clamp(2.5rem,5vw,4rem);display:grid}.contacts{border-top:2px solid var(--fg);width:100%}.contacts li{border-bottom:1px solid var(--rule)}.contact{justify-content:space-between;align-items:center;gap:1rem;padding:clamp(.9rem,2vw,1.4rem) .25rem;text-decoration:none;transition:background-color .16s,color .16s,padding .16s;display:flex}.contact__label{overflow-wrap:anywhere;min-width:0;font-family:var(--font-display);font-size:clamp(1.375rem,3.6vw,2.75rem);font-weight:800;font-stretch:118%;line-height:1.1}.contact .icon{aspect-ratio:1;width:clamp(1.5rem,3vw,2.25rem);height:auto}.contact:hover,.contact:focus-visible{background:var(--fg);color:var(--bg);padding-inline:1rem}.contact:focus-visible{outline-offset:0}.s-footer{padding:1.5rem var(--gutter);background:var(--wine-deep);color:var(--sand-muted);font-family:var(--font-utility);font-weight:600;font-stretch:80%;font-size:var(--t-small);text-align:center}@media (max-width:759.98px){.topbar{background:var(--wine)}.nav{color:var(--sand)}.nav__menu{cursor:pointer;background:0 0;border:0;align-items:center;gap:.45rem;padding:.5rem .25rem;font-size:.9375rem;font-weight:650;font-stretch:80%;display:inline-flex}.nav__list{inset:var(--header-h) 0 auto;padding:.5rem var(--gutter) 1.5rem;background:var(--sand);color:var(--wine);border-bottom:3px solid var(--wine);flex-direction:column;gap:0;display:none;position:fixed}.nav.is-open .nav__list{display:flex}.nav__list li+li{border-top:1px solid #7f011f38}.nav__link{font-family:var(--font-display);padding-block:.85rem;font-size:1.5rem;font-weight:800;font-stretch:112%}.hero{min-height:0;padding-top:var(--header-h);background:var(--wine);grid-template:"photo""name""intro"/1fr}.hero--no-photo{padding-top:calc(var(--header-h) + 3rem);grid-template-areas:"name""intro"}.hero__photo{margin-inline:calc(-1 * var(--gutter));padding:2rem var(--gutter) 0;background:var(--sand)}.hero__photo img{width:min(68%,18rem);margin-bottom:-3rem}.hero__name{-webkit-text-fill-color:currentColor;font-size:min(5rem, calc((100vw - 2 * var(--gutter)) / (var(--longest) * .98)));background:0 0;margin-top:4.5rem}.hero__intro{padding:1.75rem 0 1rem}}@media (max-width:899.98px){.s-section__inner{gap:2rem}}
