@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}:root{--gutter:clamp(16px, 3.2vw, 48px);--max:1440px;--ease:cubic-bezier(.16, 1, .3, 1);--f-ui:"Archivo Variable", system-ui, sans-serif;--bg:#efede8;--bg-2:#e6e3dc;--ink:#121212;--muted:#625f58;--line:#12121224;--accent:#d9481f;--on-ink:#efede8;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#111110;--bg-2:#1a1a18;--ink:#eceae4;--muted:#9b978e;--line:#eceae424;--accent:#ff7a4d;--on-ink:#111110;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#111110;--bg-2:#1a1a18;--ink:#eceae4;--muted:#9b978e;--line:#eceae424;--accent:#ff7a4d;--on-ink:#111110;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}body{background:var(--bg);color:var(--ink);font-family:var(--f-ui);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .4s var(--ease), color .4s var(--ease);margin:0;font-size:17px;line-height:1.55;overflow-x:clip}main{overflow-x:clip}img,video,svg{max-width:100%;display:block}img,video{height:auto}h1,h2,h3,h4,p,ul,ol,dl,dd,figure,blockquote{margin:0}ul,ol{padding:0;list-style:none}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}::selection{background:var(--ink);color:var(--bg)}.wrap{width:100%;max-width:var(--max);padding-inline:var(--gutter);margin-inline:auto}.skip{z-index:100;background:var(--ink);color:var(--bg);border-radius:8px;padding:8px 14px;position:absolute;top:8px;left:-9999px}.skip:focus{left:8px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.js:not(.is-ready) [data-split],.js:not(.is-ready) [data-chars],.js:not(.is-ready) [data-reveal],.js:not(.is-ready) [data-stagger]>*{visibility:hidden}@media (prefers-reduced-motion:reduce){.js:not(.is-ready) [data-split],.js:not(.is-ready) [data-chars],.js:not(.is-ready) [data-reveal],.js:not(.is-ready) [data-stagger]>*{visibility:visible}}.line-mask{margin:-.04em -.12em -.16em;padding:.04em .12em .16em}.char-mask{margin:-.14em -.08em;padding:.14em .08em}.site-header{z-index:50;transition:transform .6s var(--ease), background-color .4s var(--ease), border-color .4s;border-bottom:1px solid #0000;position:fixed;inset:0 0 auto}.site-header.is-scrolled{background:color-mix(in srgb, var(--bg) 86%, transparent);-webkit-backdrop-filter:blur(14px)saturate(1.3);border-bottom-color:var(--line)}.site-header.is-hidden{transform:translateY(-100%)}.site-header .wrap{grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;height:64px;font-size:14px;display:grid}.brand{letter-spacing:-.01em;justify-self:start;font-weight:640;font-stretch:108%}.header-mid{color:var(--muted);align-items:center;gap:14px;display:flex}.header-mid .dot{background:#2fa864;border-radius:50%;width:7px;height:7px;animation:2.4s infinite pulse;box-shadow:0 0 #2fa86480}@keyframes pulse{70%{box-shadow:0 0 0 7px #2fa86400}to{box-shadow:0 0 #2fa86400}}.nav{justify-self:end;align-items:center;gap:clamp(14px,2vw,28px);display:flex}.nav a,.text-link{position:relative}.nav a:after,.text-link:after{content:"";transform-origin:100%;height:1px;transition:transform .5s var(--ease);background:currentColor;position:absolute;bottom:-2px;left:0;right:0;transform:scaleX(0)}.nav a:hover:after,.text-link:hover:after{transform-origin:0;transform:scaleX(1)}.nav-pill{height:34px;transition:background-color .4s var(--ease), color .4s var(--ease);border-radius:99px;align-items:center;gap:6px;padding:0 14px;font-weight:560;display:inline-flex;box-shadow:inset 0 0 0 1.5px}.nav-pill:hover{background:var(--ink);color:var(--bg);box-shadow:inset 0 0 0 1.5px var(--ink)}.theme-btn{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:0;display:inline-flex}@media (width<=760px){.site-header .wrap{grid-template-columns:1fr auto}.header-mid,.nav .hide-sm{display:none}}.progress{z-index:60;background:var(--c-accent,var(--accent));transform-origin:0;height:3px;position:fixed;inset:0 0 auto;transform:scaleX(0)}.curtain{z-index:200;pointer-events:none;background:var(--ink);position:fixed;inset:0;transform:scaleY(0)}.cursor-pill{z-index:120;pointer-events:none;white-space:nowrap;background:var(--pill-bg,var(--ink));color:var(--pill-ink,var(--bg));transition:scale .4s var(--ease);border-radius:99px;padding:10px 16px;font-size:14px;font-weight:560;position:fixed;top:0;left:0;translate:-50% -50%;scale:0}.cursor-pill.is-on{scale:1}.btn{--b-bg:var(--ink);--b-ink:var(--bg);background:var(--b-bg);height:48px;color:var(--b-ink);isolation:isolate;transition:color .5s var(--ease);border-radius:99px;align-items:center;gap:10px;padding:0 22px;font-size:15px;font-weight:560;display:inline-flex;position:relative;overflow:hidden}.btn:before{content:"";z-index:-1;border-radius:inherit;background:var(--accent);transition:transform .55s var(--ease);position:absolute;inset:0;transform:translateY(101%)}.btn:hover:before{transform:translateY(0)}.btn.ghost{--b-bg:transparent;--b-ink:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line)}.btn.ghost:before{background:var(--ink)}.btn.ghost:hover{color:var(--bg)}.btn .arr{transition:transform .5s var(--ease)}.btn:hover .arr{transform:translate(4px)}dialog.lightbox{color:#fff;background:#0a0a0aeb;border:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0}dialog.lightbox::backdrop{background:0 0}.lightbox-body{height:100%;padding:64px var(--gutter);place-items:start center;display:grid;overflow:auto}.lightbox-body img{border-radius:8px;max-width:min(1600px,100%)}.lightbox-close{color:#111;z-index:2;background:#fff;border-radius:99px;padding:10px 18px;font-size:14px;font-weight:560;position:fixed;top:16px;right:16px}[data-zoom]{cursor:zoom-in}.ba{--pos:50%;-webkit-user-select:none;user-select:none;border-radius:14px;position:relative;overflow:hidden}.ba img{width:100%}.ba .ba-after{clip-path:inset(0 0 0 var(--pos));position:absolute;inset:0}.ba .ba-after img{object-fit:cover;object-position:top;height:100%}.ba .ba-handle{top:0;bottom:0;left:var(--pos);pointer-events:none;background:#fff;width:2px;position:absolute;translate:-1px;box-shadow:0 0 0 1px #00000026}.ba .ba-handle:after{content:"⟷";color:#111;background:#fff;border-radius:50%;place-items:center;width:44px;height:44px;font-size:18px;display:grid;position:absolute;top:50%;left:50%;translate:-50% -50%;box-shadow:0 6px 24px #00000040}.ba input[type=range]{opacity:0;cursor:ew-resize;width:100%;height:100%;margin:0;position:absolute;inset:0}.ba .ba-tag{color:#fff;pointer-events:none;background:#000000b8;border-radius:99px;padding:6px 12px;font-size:13px;font-weight:560;position:absolute;top:14px}.ba .ba-tag.l{left:14px}.ba .ba-tag.r{right:14px}.hscroll{position:relative;overflow:hidden}.hscroll-view{overflow:hidden}.hscroll-track{width:max-content;padding-inline:var(--gutter);will-change:transform;gap:clamp(16px,2.4vw,36px);display:flex}@media (width<=899px),(prefers-reduced-motion:reduce){.hscroll-view{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;overflow-x:auto}.hscroll-view::-webkit-scrollbar{display:none}.hscroll-track>*{scroll-snap-align:center}}.annot{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);align-items:start;gap:clamp(24px,5vw,80px);display:grid}.annot-screen{border-radius:14px;height:min(78vh,900px);position:sticky;top:90px;overflow:hidden}.annot-screen img{will-change:transform;width:100%}.annot-notes{gap:22vh;padding-block:10vh 30vh;display:grid}.annot-note{opacity:.3;transition:opacity .5s var(--ease)}.annot-note.is-active{opacity:1}@media (width<=899px),(prefers-reduced-motion:reduce){.annot{grid-template-columns:1fr}.annot-screen{height:auto;max-height:none;position:relative;top:0}.annot-notes{gap:28px;padding:0}.annot-note{opacity:1}}.steps{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);align-items:start;gap:clamp(24px,5vw,80px);display:grid}.steps-list{gap:30vh;padding-block:18vh 36vh;display:grid}.step{opacity:.28;transition:opacity .5s var(--ease)}.step.is-active{opacity:1}.steps-stage{display:grid;position:sticky;top:100px}.steps-shot{opacity:0;transition:opacity .6s var(--ease), transform .8s var(--ease);grid-area:1/1;transform:translateY(24px)scale(.98)}.steps-shot.is-active{opacity:1;transform:none}@media (width<=899px),(prefers-reduced-motion:reduce){.steps{grid-template-columns:1fr}.steps-stage{display:none}.steps-list{gap:40px;padding:0}.step{opacity:1}.step .step-shot-inline{display:block}}.step-shot-inline{margin-top:18px;display:none}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.wrap{padding-inline:max(var(--gutter), env(safe-area-inset-left)) max(var(--gutter), env(safe-area-inset-right))}.lightbox-close{top:max(16px, env(safe-area-inset-top));right:max(16px, env(safe-area-inset-right));min-height:44px}html{-webkit-tap-highlight-color:transparent}@media (width<=900px),(hover:none){.site-header.is-scrolled{background:var(--bg);-webkit-backdrop-filter:none}}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.site-header.is-scrolled{background:var(--bg)}}:where(.brand,.nav a:not(.nav-pill),.theme-btn){align-items:center;min-height:44px;display:inline-flex}.nav-pill{height:44px}.text-link,.site-footer a{margin-block:-11px;padding-block:11px;display:inline-block}.text-link:after{bottom:9px}.ba input[type=range]{touch-action:pan-y}@media (hover:none){.btn:before,.nav-pill:hover,.btn:hover .arr{transition:none}.btn:hover:before{transform:translateY(101%)}.btn:hover{color:var(--b-ink)}.nav-pill:hover{color:inherit;background:0 0;box-shadow:inset 0 0 0 1.5px}.nav a:hover:after,.text-link:hover:after{transform:scaleX(0)}}.brand{white-space:nowrap}.menu-btn{min-height:44px;font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;justify-self:end;align-items:center;gap:10px;margin-right:-2px;padding:0 2px 0 10px;font-weight:560;display:none}.menu-btn-icon{width:22px;height:10px;position:relative}.menu-btn-icon i{height:1.5px;transition:transform .5s var(--ease), top .5s var(--ease);background:currentColor;border-radius:2px;position:absolute;left:0;right:0}.menu-btn-icon i:first-child{top:0}.menu-btn-icon i:last-child{top:8.5px}.menu-btn[aria-expanded=true] .menu-btn-icon i:first-child{top:4.25px;transform:rotate(45deg)}.menu-btn[aria-expanded=true] .menu-btn-icon i:last-child{top:4.25px;transform:rotate(-45deg)}.site-menu{display:none}@media (width<=900px){.site-header .wrap{grid-template-columns:1fr auto}.site-header .nav,.site-header .header-mid{display:none}.menu-btn{display:inline-flex}.site-menu:not([hidden]){flex-direction:column;display:flex}}.site-menu{z-index:45;background:var(--bg);color:var(--ink);overscroll-behavior:contain;padding:calc(64px + env(safe-area-inset-top)) 0 max(24px, env(safe-area-inset-bottom));position:fixed;inset:0;overflow-y:auto}.site-menu-inner{font-family:var(--f-ui);flex-direction:column;flex:1 0 auto;gap:28px;padding-top:clamp(16px,5vh,48px);display:flex}.site-menu-links{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.site-menu-links a{border-bottom:1px solid var(--line);letter-spacing:-.03em;align-items:center;min-height:64px;padding-block:6px;font-size:clamp(34px,10vw,56px);font-weight:600;font-stretch:104%;line-height:1.05;display:flex}.site-menu-label{color:var(--muted);margin:8px 0 -14px;font-size:14px}.site-menu-cases{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.site-menu-cases a{border-bottom:1px solid var(--line);grid-template-columns:30px minmax(0,1fr) auto;align-items:baseline;gap:10px;min-height:52px;padding-block:14px;display:grid}.site-menu-cases .n{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.site-menu-cases .t{letter-spacing:-.01em;font-size:21px;font-weight:600}.site-menu-cases .w{color:var(--muted);text-align:right;font-size:13px}.site-menu-cases a[aria-current] .w{color:var(--accent);font-weight:600}.site-menu-foot{justify-content:space-between;align-items:center;gap:16px;margin-top:auto;padding-top:12px;font-size:15px;display:flex}.site-menu-foot .nav-pill{height:48px;padding:0 22px}html.menu-open body .site-header.site-header{color:var(--ink);background:var(--bg);border-bottom-color:#0000;transform:none}html.menu-open .c-rail,html.menu-open .progress{visibility:hidden}html.menu-open,html.menu-open body{overflow:hidden}[data-chars] .word{white-space:nowrap}.ba-frame{gap:12px;display:grid}.ba-legend{color:var(--c-muted,var(--muted));justify-content:space-between;gap:12px;font-size:14px;font-weight:560;display:flex}.ba-key{transition:color .3s var(--ease);align-items:center;gap:8px;display:inline-flex}.ba-key.l:before{content:"←"}.ba-key.r:after{content:"→"}.ba-key.is-on{color:var(--c-ink,var(--ink))}.annot-hint,.pin-hit,.pin-tip{display:none}@media (width<=900px){.annot{grid-template-columns:minmax(0,1fr)}.annot-hint{color:var(--c-muted,var(--muted));align-items:center;gap:10px;margin-bottom:12px;font-size:14px;display:flex}.annot-hint:before{content:"";background:var(--c-pin,var(--c-accent));width:10px;height:10px;box-shadow:0 0 0 4px color-mix(in srgb, var(--c-pin,var(--c-accent)) 25%, transparent);border-radius:50%;flex:none}.pin-hit{cursor:pointer;z-index:2;background:0 0;border:0;border-radius:50%;width:44px;height:44px;padding:0;display:block;position:absolute;translate:-50% -50%}.pin-hit:after{content:"";animation:pin-ping 2.4s var(--ease) infinite;border-radius:50%;position:absolute;inset:10px;box-shadow:0 0 0 2px #fff}.pin-hit[aria-expanded=true]:after{box-shadow:0 0 0 3px #fff, 0 0 0 7px color-mix(in srgb, var(--c-pin,var(--c-accent)) 55%, transparent);animation:none}@keyframes pin-ping{0%{opacity:.9;transform:scale(.9)}70%,to{opacity:0;transform:scale(1.7)}}.pin-tip:not([hidden]){z-index:3;background:var(--c-bg,var(--bg));width:min(270px,100% - 16px);color:var(--c-ink,var(--ink));box-shadow:0 18px 40px -12px #00000080, 0 0 0 1px var(--c-line,var(--line));border-radius:12px;grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:4px 10px;padding:14px 16px;display:grid;position:absolute}.pin-tip b{background:var(--c-pin,var(--c-accent));color:#fff;border-radius:50%;place-items:center;width:22px;height:22px;font-size:12px;display:inline-grid}.pin-tip strong{font-size:15px;font-weight:640;line-height:1.25}.pin-tip span{color:var(--c-muted,var(--muted));grid-column:1/-1;font-size:14px;line-height:1.45}.pin-tip:before{content:"";left:var(--ax,50%);background:inherit;width:12px;height:12px;position:absolute;translate:-50%;rotate:45deg}.pin-tip[data-side=below]:before{box-shadow:-1px -1px 0 0 var(--c-line,var(--line));top:-6px}.pin-tip[data-side=above]:before{box-shadow:1px 1px 0 0 var(--c-line,var(--line));bottom:-6px}.annot-notes{scroll-snap-type:x mandatory;overscroll-behavior-x:contain;margin-inline:calc(-1 * var(--gutter));padding:4px var(--gutter) 10px;scroll-padding-inline:var(--gutter);scrollbar-width:none;gap:12px;display:flex;position:relative;overflow-x:auto}.annot-notes::-webkit-scrollbar{display:none}.annot-note{scroll-snap-align:start;background:var(--c-card,var(--c-bg-2));border:1px solid var(--c-line);border-radius:var(--c-radius,16px);flex:0 0 min(80%,320px);padding:18px 20px 20px;transition:border-color .3s}.annot-note .no{width:28px;height:28px;margin-bottom:10px;font-size:13px}.annot-note h3{font-size:22px}.annot-note p{font-size:15px}.annot-note.is-picked{border-color:var(--c-pin,var(--c-accent))}}@media (width<=900px) and (prefers-reduced-motion:reduce){.pin-hit:after{animation:none}}.tt{width:44px;height:44px;transition:background-color .4s var(--ease), color .4s var(--ease), box-shadow .4s var(--ease);border-radius:50%;flex:none;place-items:center;display:grid;position:relative;box-shadow:inset 0 0 0 1.5px}.tt svg{width:22px;height:22px;transition:transform .7s var(--ease);overflow:visible}.tt-body,.tt-shadow,.tt-rays{transform-box:view-box;transform-origin:12px 12px;transition:transform .7s var(--ease), opacity .4s var(--ease)}.tt-body{transform:scale(.62)}.tt-shadow{transform:translate(9px,-9px)}.tt-rays{opacity:1;transform:rotate(0)scale(1)}:root[data-theme=dark] .tt-body{transform:scale(1)}:root[data-theme=dark] .tt-shadow{transform:none}:root[data-theme=dark] .tt-rays{opacity:0;transform:rotate(-90deg)scale(.4)}:root[data-theme=dark] .tt svg{transform:rotate(-20deg)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .tt-body{transform:scale(1)}:root:not([data-theme=light]) .tt-shadow{transform:none}:root:not([data-theme=light]) .tt-rays{opacity:0;transform:rotate(-90deg)scale(.4)}:root:not([data-theme=light]) .tt svg{transform:rotate(-20deg)}}@media (hover:hover){.theme-btn:hover .tt{background:var(--ink);color:var(--bg);box-shadow:inset 0 0 0 1.5px var(--ink)}.case .site-header:not(.is-scrolled) .theme-btn:hover .tt{background:var(--hdr-ink,var(--ink));color:var(--c-bg,var(--bg));box-shadow:none}}.theme-btn:active .tt{transform:scale(.92)}.theme-btn:focus-visible{outline:none}.theme-btn:focus-visible .tt{outline-offset:3px;outline:2px solid}.theme-btn-sm{display:none}@media (width<=900px){.site-header .wrap{grid-template-columns:1fr auto auto;gap:12px}.theme-btn-sm{display:inline-flex}.theme-btn-sm .tt{width:40px;height:40px}.theme-btn-sm .tt svg{width:20px;height:20px}}.theme-swap,.theme-swap :not(.tt,.tt *){transition:none!important}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){z-index:2}.lightbox-hint{display:none}dialog.lightbox.is-pan{background:#0a0a0a}dialog.lightbox.is-pan .lightbox-body{touch-action:none;overscroll-behavior:contain;padding:0;display:block;position:relative;overflow:hidden}dialog.lightbox.is-pan .lightbox-body img{transform-origin:0 0;will-change:transform;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;border-radius:0;max-width:none;height:auto;position:absolute;top:0;left:0}dialog.lightbox.is-pan .lightbox-body img.is-easing{transition:transform .3s var(--ease)}dialog.lightbox.is-pan .lightbox-hint{left:50%;bottom:max(20px, env(safe-area-inset-bottom));z-index:2;color:#111;white-space:nowrap;transition:opacity .4s var(--ease);background:#fffffff0;border-radius:99px;margin:0;padding:10px 16px;font-size:13px;font-weight:560;display:block;position:fixed;translate:-50%}dialog.lightbox.is-pan .lightbox-hint.is-gone{opacity:0;pointer-events:none}
