@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}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-body:"Archivo Variable", Helvetica, Arial, sans-serif}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.block{display:block}.hidden{display:none}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{--light:#eceef1;--dark:#0d1117;--accent:#fecd00;--dark-dim:#0d1117b8;--dark-faint:#0d11173d;--light-dim:#eceef1bd;--light-faint:#eceef152;--ease:cubic-bezier(.16, 1, .3, 1);--col:24vw;--band:64px;--topbar:64px}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--light);color:var(--light);font-family:var(--font-body);overflow-x:clip}body:after{content:"";pointer-events:none;z-index:90;opacity:.07;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");position:fixed;inset:0}@supports not (animation-timeline:scroll()){@media (hover:none){body:after{display:none}}}a{color:inherit}.identity a,.drawer .detail a,.contact .links a{text-decoration:underline}.band{height:var(--band);z-index:60;background:var(--light);color:var(--dark);grid-template-columns:repeat(5,1fr);align-items:center;gap:2vw;padding:0 3vw;font-size:14px;line-height:1.3;display:grid;position:fixed;top:0;left:0;right:0}.band .cell{z-index:1;cursor:default;flex-direction:column;justify-content:center;height:100%;display:flex;position:relative}.band .cell:focus-visible{outline:2px solid var(--dark);outline-offset:-2px}.band .k{color:var(--dark-dim);display:block}.band .v{height:1.3em;font-weight:500;display:block;overflow:hidden}.band .v span{white-space:nowrap;transition:transform .55s var(--ease);display:block}.band .cell:hover .v span{transform:translateY(-100%)}.band .v span:first-child{animation:rise .7s var(--ease) backwards}.band .bar{background:var(--dark);transform-origin:0;opacity:0;width:100px;height:3px;transition:transform .6s var(--ease), opacity .3s;position:absolute;bottom:0;left:0}.band.open .bar{opacity:1}.drawer{top:var(--band);z-index:59;background:var(--light);color:var(--dark);clip-path:inset(0 0 100%);visibility:hidden;transition:clip-path .7s var(--ease), visibility 0s .7s;position:fixed;left:0;right:0}.drawer.open{clip-path:inset(0);visibility:visible;transition:clip-path .7s var(--ease), visibility 0s}.drawer .in{justify-content:space-between;align-items:flex-end;gap:4vw;padding:4vh 3vw 6vh;display:flex}.drawer .big{text-transform:uppercase;letter-spacing:-.04em;white-space:nowrap;padding-bottom:.08em;font-size:clamp(36px,4.2vw,76px);font-weight:700;line-height:.9;overflow:hidden}.drawer .big a{text-decoration:none}.drawer .big .rise{animation:rise .6s var(--ease);display:inline-block}@keyframes rise{0%{transform:translateY(105%)}}.mask{vertical-align:bottom;display:inline-block;overflow:hidden}.mask>span{animation:rise .6s var(--ease) backwards;display:inline-block}.drawer .detail{max-width:40ch;color:var(--dark-dim);transition:opacity .3s, transform .6s var(--ease);font-size:18px;line-height:1.45}.drawer .detail.out{opacity:0;transform:translateY(10px)}.drawer .detail a{color:var(--dark);text-underline-offset:4px;margin-right:24px;padding:12px 0;display:inline-block}.rail{left:0;top:var(--band);z-index:30;background:var(--dark);transform-origin:0 0;will-change:transform;width:100vw;position:fixed;bottom:0}.topbar{display:none}.name{left:3vw;top:var(--band);z-index:40;letter-spacing:-.045em;text-transform:uppercase;white-space:nowrap;color:var(--light);transform-origin:0 0;will-change:transform;font-size:15vw;font-weight:700;line-height:.84;position:fixed}.name .line{display:block}.name .ch,.contact .mail .ch{font-variation-settings:"wdth" var(--wdth,100), "wght" var(--wght,700);display:inline-block}.name .surname .ch{color:var(--accent);transition:color .5s}.name.landed .surname .ch{color:var(--light)}.name.follow-scroll,.rail.follow-scroll{animation-timing-function:cubic-bezier(.33,1,.68,1);animation-fill-mode:both;animation-timeline:scroll(root);animation-range:0px var(--hero-end)}.name.follow-scroll{animation-name:name-land}.rail.follow-scroll{animation-name:rail-narrow}@keyframes name-land{0%{transform:translateY(var(--name-y0)) scale(1)}to{transform:translateY(var(--name-y1)) scale(var(--name-scale))}}.hero-timed .name,.hero-timed .rail,.hero-timed .lead-wrap{transition:transform .8s var(--ease), opacity .4s}.hero-timed .name .surname .ch{transition:color .5s .8s}@keyframes rail-narrow{0%{transform:scaleX(1)}to{transform:scaleX(var(--rail-scale))}}.lead-wrap{top:calc(var(--band) + 7vh);z-index:39;pointer-events:none;position:fixed;left:3vw}.lead{letter-spacing:-.015em;max-width:24ch;color:var(--light);opacity:0;transition:opacity .8s .9s, transform 1s .9s var(--ease);font-size:clamp(26px,2.6vw,44px);font-weight:600;line-height:1.12;transform:translateY(16px)}.lead.in{opacity:1;transform:none}.lead span{color:var(--light-dim)}.lead i{white-space:nowrap;font-style:normal}.identity{width:calc(var(--col) - 5vw);z-index:41;color:var(--light-dim);opacity:0;visibility:hidden;font-size:16px;line-height:1.5;transition:opacity .5s,visibility 0s .5s;position:fixed;left:3vw}.identity.show{opacity:1;visibility:visible;transition:opacity .5s,visibility}.identity p+p{margin-top:16px}.identity em{color:var(--light);font-style:normal}.identity .panel{opacity:0;visibility:hidden;transition:opacity .4s, transform .6s var(--ease), visibility 0s .6s;position:absolute;top:0;left:0;right:0;transform:translateY(12px)}.identity .panel.on{opacity:1;visibility:visible;transition:opacity .5s .1s, transform .7s .1s var(--ease), visibility 0s;transform:none}.identity .row+.row{margin-top:18px}.identity .k{color:var(--light-dim);font-size:14px;display:block}.identity .v{color:var(--light);margin-top:2px;font-size:18px;line-height:1.35;display:block}.identity a{text-underline-offset:5px;transition:color .3s}.identity a:hover{color:var(--accent)}.index{z-index:41;opacity:0;visibility:hidden;transition:opacity .5s,visibility 0s .5s;position:fixed;bottom:5vh;left:3vw}.index.show{opacity:1;visibility:visible;transition:opacity .5s,visibility}.index a{text-transform:uppercase;letter-spacing:-.03em;color:var(--light-faint);transition:color .4s var(--ease), transform .5s var(--ease);padding:2px 0;font-size:clamp(24px,2.2vw,36px);font-weight:700;line-height:1;text-decoration:none;display:block}.index a:hover{color:var(--light-dim)}.index a.on{color:var(--accent);transform:translate(10px)}main{margin-left:var(--col)}.hero-space{height:100vh}.bio{background:var(--light);color:var(--dark);padding:16vh 4vw 20vh}.bio p{z-index:0;letter-spacing:-.015em;max-width:28ch;font-size:clamp(26px,3vw,46px);font-weight:600;line-height:1.16;position:relative}.bio .w{color:var(--dark-faint);transition:color .3s var(--ease)}.bio .w.on{color:var(--dark)}.bio .hl{white-space:nowrap;display:inline-block;position:relative}.bio .hl:after{content:attr(data-text);background:var(--accent);color:var(--dark);clip-path:inset(0 100% 0 0);transition:clip-path .8s var(--ease);padding:0 .14em;position:absolute;top:0;bottom:0;left:-.14em}.bio .hl.on:after{clip-path:inset(0)}.works{z-index:0;background:var(--dark);padding:14vh 4vw 30vh;position:relative}.works ul{z-index:1;list-style:none;position:relative}.works li{cursor:pointer;padding:1.2vh 0}.works li .t{text-transform:uppercase;letter-spacing:-.035em;color:var(--light-faint);transition:color .5s var(--ease);font-size:clamp(48px,8.6vw,150px);font-weight:700;line-height:.9;text-decoration:none;display:block}.works li .s{max-width:44ch;color:var(--light-dim);opacity:0;margin-top:1.2vh;font-size:clamp(15px,1.2vw,18px);line-height:1.45;transition:opacity .5s;display:block}.works li.active .t{color:var(--accent)}.works li.active .s{opacity:1}.works .mshot{display:none}.peek{z-index:2;aspect-ratio:1600/846;pointer-events:none;opacity:0;width:min(44vw,720px);transition:opacity .3s, scale .5s var(--ease);border-radius:3px;position:fixed;top:0;left:0;overflow:hidden;translate:-50% -50%;scale:.8}.peek.show{opacity:1;scale:1}.peek img{object-fit:cover;object-position:top;width:100%;height:100%}.stack{background:var(--light);height:270vh;color:var(--dark);position:relative}.stack .pin{top:var(--band);height:calc(100vh - var(--band));grid-template-columns:1.1fr 1fr;align-items:center;gap:4vw;padding:0 4vw;display:grid;position:sticky}.layers{z-index:0;list-style:none;position:relative}.layers li,.stack-m h3{z-index:0;white-space:nowrap;text-transform:uppercase;letter-spacing:-.035em;width:fit-content;color:var(--dark-faint);transition:color .5s var(--ease);font-size:clamp(40px,6.2vw,104px);font-weight:700;line-height:.92;position:relative}.layers li:before,.stack-m h3:before{content:"";z-index:-1;background:var(--accent);transform-origin:0;transition:transform .6s var(--ease);position:absolute;inset:.06em -.12em .02em;transform:scaleX(0)}.layers li.on,.stack-m .mrow.on h3{color:var(--dark)}.layers li.on:before,.stack-m .mrow.on h3:before{transform:scaleX(1)}.where{min-height:26rem;position:relative}.where>div{visibility:hidden;flex-direction:column;justify-content:center;gap:4.5vh;display:flex;position:absolute;inset:0}.where>div.on{visibility:visible}.tech{grid-template-columns:clamp(56px,4.6vw,84px) 1fr;align-items:center;display:grid}.where .tech{opacity:0;transition:opacity .5s, transform .7s var(--ease);transform:translateY(18px)}.where>div.on .tech{opacity:1;transform:none}.where>div.on .tech:nth-child(2),.where>div.on .tech:nth-child(2) b span{transition-delay:80ms;animation-delay:80ms}.where>div.on .tech:nth-child(3),.where>div.on .tech:nth-child(3) b span{transition-delay:.16s;animation-delay:.16s}.where>div.on .tech:nth-child(4),.where>div.on .tech:nth-child(4) b span{transition-delay:.24s;animation-delay:.24s}.where>div.on .tech:nth-child(5),.where>div.on .tech:nth-child(5) b span{transition-delay:.32s;animation-delay:.32s}.where .tech b{overflow:hidden}.where>div.on .tech b span{animation:rise .6s var(--ease) backwards;display:inline-block}.tech .logo{font-size:clamp(26px,2.2vw,38px);line-height:1;display:flex}.tech b{letter-spacing:-.025em;font-size:clamp(24px,2.2vw,38px);font-weight:600;line-height:1;display:block}.stack-m{display:none}.contact{background:var(--dark);flex-direction:column;min-height:100vh;padding:16vh 4vw 5vh;display:flex}.contact .big{text-transform:uppercase;letter-spacing:-.045em;font-size:clamp(64px,13vw,220px);font-weight:700;line-height:.86}.contact .big .ln{padding-bottom:.04em;display:block;overflow:hidden}.contact .big .cl{transition:transform 1s var(--ease);display:inline-block;transform:translateY(105%)}.contact.in .big .cl{transform:none}.contact .mail{width:fit-content;color:var(--accent);letter-spacing:-.03em;white-space:nowrap;opacity:0;transition:opacity .6s .5s, transform .9s .5s var(--ease);margin-top:7vh;font-weight:700;line-height:1;text-decoration:none;display:block;transform:translateY(20px)}.contact.in .mail{opacity:1;transform:none}.contact .links{opacity:0;flex-wrap:wrap;gap:12px 36px;margin-top:5vh;font-size:20px;transition:opacity .6s .8s;display:flex}.contact.in .links{opacity:1}.contact .links a{text-underline-offset:6px;padding:6px 0;transition:color .3s}.contact .links a:hover{color:var(--accent)}.contact .foot{color:var(--light-dim);justify-content:space-between;align-items:flex-end;gap:24px;margin-top:auto;padding-top:12vh;font-size:14px;display:flex}.to-top{background:var(--light);width:64px;height:64px;color:var(--dark);transition:background-color .35s var(--ease);border-radius:50%;place-items:center;display:grid}.to-top svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px;transition:transform .45s var(--ease)}.to-top:hover{background:var(--accent)}.to-top:hover svg{transform:translateY(-3px)}@media (width<=991px){:root{--col:0px;--band:56px}.band{gap:0;padding:0 2vw}.band .cell{text-align:center;align-items:center}.band .v{display:none}.band .k{color:var(--dark);font-size:clamp(13px,4vw,15px);font-weight:500}.drawer .big{margin-block:-14px}.drawer .big a{padding:14px 0;display:inline-block}.contact .mail{margin-top:calc(7vh - 14px);margin-bottom:-14px;padding:14px 0}.contact .links a{padding:10px 0}.drawer .in{flex-direction:column;align-items:flex-start;gap:2vh}.drawer .big{font-size:6vw}.drawer .detail{font-size:16px}.rail{height:calc(100lvh - var(--band));transform-origin:0 0;bottom:auto}body:after{top:var(--band)}.rail.follow-scroll{animation-name:rail-fold}@keyframes rail-fold{0%{transform:scaleY(1)}to{transform:scaleY(var(--rail-scale))}}.topbar{left:0;right:0;top:var(--band);height:var(--topbar);z-index:35;background:var(--dark);opacity:0;transition:opacity .3s;display:block;position:fixed}.topbar.show{opacity:1}.name{left:5vw}.lead-wrap{left:5vw;right:5vw;top:calc(var(--band) + 28px)}.lead{max-width:none;font-size:clamp(26px,7.4vw,34px)}.identity,.index{display:none}.hero-space{height:100svh}.bio{padding:12vh 5vw 14vh}.works{padding:10vh 5vw 14vh}.works li{padding:3vh 0}.works li .s{opacity:1}.peek{display:none}.stack{height:auto;padding:10vh 5vw 8vh}.stack .pin{display:none}.stack-m{display:block}.stack-m .mrow+.mrow{margin-top:7vh}.stack-m h3{font-size:12vw}.stack-m .techs{flex-direction:column;gap:22px;margin-top:3vh;display:flex}.stack-m .tech{grid-template-columns:56px 1fr}.stack-m .logo{font-size:30px}.stack-m b{letter-spacing:-.02em;font-size:24px;line-height:1.05}.contact{min-height:90svh;padding:12vh 5vw 5vh}.contact .big{font-size:22vw}.contact .links{font-size:18px}}@media (width<=991px),(hover:none),(pointer:coarse){.works .mshot{margin-top:2vh;display:block}.works .mshot img{aspect-ratio:16/10;object-fit:cover;object-position:top;border-radius:3px;width:100%;height:auto;display:block}}@media (width>=992px) and (hover:none),(width>=992px) and (pointer:coarse){.works li{padding:3vh 0}.works li .s{opacity:1}.works .mshot{width:min(48vw,640px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
