@font-face{font-family:Mona Sans Variable;font-style:normal;font-display:swap;font-weight:200 900;font-stretch:75% 125%;src:url(/assets/mona-sans-vietnamese-wdth-normal-Rd0aZl9c.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:Mona Sans Variable;font-style:normal;font-display:swap;font-weight:200 900;font-stretch:75% 125%;src:url(/assets/mona-sans-latin-ext-wdth-normal-CQ1tG6In.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:Mona Sans Variable;font-style:normal;font-display:swap;font-weight:200 900;font-stretch:75% 125%;src:url(/assets/mona-sans-latin-wdth-normal-BMVx8nn_.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:VCR;src:url(/assets/VCR_OSD_MONO-PhQIW89D.ttf)format("truetype");font-display:swap}:root{--black:#000;--ink:#fff;--ink-2:#b8b8b8;--ink-3:#8a8a8a;--line:#2b2b2b;--surface:#0d0d0d;--rec:#dc2626;--font-sans:"Mona Sans Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--font-osd:"VCR", ui-monospace, monospace;--step--1:.8125rem;--step-0:1.0625rem;--step-1:1.333rem;--step-2:1.777rem;--step-3:clamp(1.9rem, 1.4rem + 2vw, 2.369rem);--step-4:clamp(2.4rem, 1.6rem + 3.4vw, 3.157rem);--step-5:clamp(3rem, 1.6rem + 6vw, 5.61rem);--gutter:clamp(16px, 4vw, 56px);--header-h:64px;--ease-out:cubic-bezier(.22, 1, .36, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--black);color:var(--ink);font-family:var(--font-sans);font-size:var(--step-0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;font-stretch:100%;line-height:1.55}html.is-locked{overflow:hidden}h1,h2,h3,h4,p,ul,ol,dl,dd,figure{margin:0}ul,ol{padding:0;list-style:none}img{max-width:100%;display:block}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--ink);outline-offset:3px}::selection{background:var(--rec);color:var(--ink)}section[id],[id=all-projects]{scroll-margin-top:calc(var(--header-h) + 16px)}.osd{font-family:var(--font-osd);text-transform:uppercase;letter-spacing:.02em}.skip{z-index:100;background:var(--ink);color:var(--black);padding:10px 14px;position:fixed;top:8px;left:8px;transform:translateY(-200%)}.skip:focus-visible{transform:none}.wrap{padding-inline:var(--gutter)}.display{letter-spacing:-.01em;font-weight:850;font-stretch:75%;line-height:.92}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.header[data-v-9fd0f7ca]{z-index:50;height:var(--header-h);padding-inline:var(--gutter);mix-blend-mode:difference;color:#fff;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;gap:16px;transition:background-color .2s,border-color .2s;display:flex;position:fixed;inset:0 0 auto}.header.is-solid[data-v-9fd0f7ca]{mix-blend-mode:normal;background:var(--black);border-bottom-color:var(--line)}.header__brand[data-v-9fd0f7ca]{align-items:center;gap:10px;text-decoration:none;display:flex}.header__brand img[data-v-9fd0f7ca]{width:30px;height:auto}.header__name[data-v-9fd0f7ca]{font-weight:700;font-stretch:125%;font-size:var(--step--1);letter-spacing:.04em}.header__nav[data-v-9fd0f7ca]{align-items:center;gap:clamp(14px,2.4vw,32px);font-size:.9375rem;font-weight:500;display:flex}.header__nav a[data-v-9fd0f7ca]{padding-block:8px;text-decoration:none}.header__nav a[data-v-9fd0f7ca]:hover{text-underline-offset:5px;text-decoration:underline;text-decoration-thickness:1px}.header__lang[data-v-9fd0f7ca]{font-size:.875rem}@media (width<=520px){.header__name[data-v-9fd0f7ca]{display:none}.header__nav[data-v-9fd0f7ca]{font-size:.875rem}}.ascii[data-v-259b9c53]{background:var(--black);position:absolute;inset:0}.ascii__canvas[data-v-259b9c53],.ascii__poster[data-v-259b9c53]{width:100%;height:100%;display:block}.ascii__poster[data-v-259b9c53]{object-fit:cover;opacity:.85}.decode[data-v-76c6c45a]{white-space:nowrap;display:inline-flex}.decode__char[data-v-76c6c45a]{display:inline-block;position:relative}.decode__char.is-space[data-v-76c6c45a]{width:.18em}.decode__scramble[data-v-76c6c45a]{font-family:var(--font-osd);color:var(--rec);place-items:center;font-size:.62em;font-weight:400;display:grid;position:absolute;inset:0}.hero[data-v-3d337fa4]{isolation:isolate;min-height:100svh;position:relative;overflow:hidden}.hero__content[data-v-3d337fa4]{z-index:1;min-height:100svh;padding:calc(var(--header-h) + clamp(24px, 8vh, 96px)) var(--gutter) 0;pointer-events:none;grid-template-rows:1fr auto;display:grid;position:relative}.hero__content a[data-v-3d337fa4]{pointer-events:auto}.hero__lead[data-v-3d337fa4]{max-width:28ch;font-size:var(--step-1);text-wrap:balance;align-self:start;font-weight:500;line-height:1.3}.hero__bracket[data-v-3d337fa4]{color:var(--ink-3);font-weight:300}.hero__caption[data-v-3d337fa4]{background:var(--black);-webkit-box-decoration-break:clone;box-decoration-break:clone;margin-left:-.3em;padding:.06em .3em}.hero__bottom[data-v-3d337fa4]{gap:12px;display:grid}.hero__meta[data-v-3d337fa4]{justify-content:space-between;align-items:end;gap:16px;display:flex}.hero__status[data-v-3d337fa4]{align-items:center;gap:10px;font-size:.9375rem;font-weight:500;display:flex}.hero__dot[data-v-3d337fa4]{background:var(--rec);border-radius:50%;width:10px;height:10px;animation:1.6s steps(2,jump-none) infinite rec-3d337fa4}@keyframes rec-3d337fa4{50%{opacity:.2}}.hero__scroll[data-v-3d337fa4]{color:var(--ink);margin-right:-8px;padding:8px}.hero__title[data-v-3d337fa4]{letter-spacing:-.015em;white-space:nowrap;margin-inline:-.04em;padding-bottom:clamp(12px,2vw,28px);font-size:min(28.6vw,36svh);font-weight:900;line-height:.78}@media (width<=720px){.hero__lead[data-v-3d337fa4]{font-size:1.1875rem}.hero__status[data-v-3d337fa4]{font-size:.8125rem}}.services[data-v-8b6c559b]{grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(24px,4vw,64px);padding-block:clamp(96px,16vh,180px);display:grid}.services__aside[data-v-8b6c559b]{top:calc(var(--header-h) + 24px);align-self:start;gap:clamp(16px,2vw,28px);display:grid;position:sticky}.services__heading[data-v-8b6c559b]{font-size:var(--step-5)}.services__angel[data-v-8b6c559b]{width:100%;height:auto;max-height:calc(100vh - var(--header-h) - 200px);aspect-ratio:15/16;object-fit:contain;background:var(--black);pointer-events:none;display:block}.services__item[data-v-8b6c559b]{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:baseline;gap:12px 32px;padding-block:clamp(22px,3.2vw,40px);display:grid}.services__item[data-v-8b6c559b]:last-child{border-bottom:1px solid var(--line)}.services__name[data-v-8b6c559b]{font-size:var(--step-4);font-weight:800}.services__text[data-v-8b6c559b]{color:var(--ink-2);max-width:44ch}@media (width<=900px){.services[data-v-8b6c559b]{grid-template-columns:1fr}.services__aside[data-v-8b6c559b]{position:static}.services__angel[data-v-8b6c559b]{max-width:420px;max-height:none}.services__item[data-v-8b6c559b]{grid-template-columns:1fr}}.flow[data-v-263aef0f]{background:radial-gradient(circle at 1px 1px, #262626 1px, transparent 0) 0 0 / 18px 18px, var(--surface);width:100%;height:100%;font-family:var(--font-osd);text-transform:uppercase;color:var(--ink);place-content:center;gap:20px;padding:8%;display:grid}.flow__steps[data-v-263aef0f]{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 0;display:flex}.flow__step[data-v-263aef0f]{align-items:center;display:flex}.flow__box[data-v-263aef0f]{border:1px solid var(--ink-2);background:var(--black);white-space:nowrap;padding:.5em .8em}.flow__step:first-child .flow__box[data-v-263aef0f]{border-color:var(--rec)}.flow__arrow[data-v-263aef0f]{color:var(--ink-3);padding-inline:.5em}.flow__caption[data-v-263aef0f]{text-align:center;color:var(--ink-3);font-size:.75rem}.flow--sm[data-v-263aef0f]{padding:6%;font-size:.6875rem}.flow--md[data-v-263aef0f]{font-size:.875rem}.flow--lg[data-v-263aef0f]{font-size:clamp(.875rem,.6rem + .6vw,1.125rem)}.visual[data-v-ba4f8c61]{background:var(--surface);width:100%;height:100%;position:relative;overflow:hidden}.visual img[data-v-ba4f8c61]{object-fit:cover;object-position:top center;width:100%;height:100%}.meta[data-v-f30c70f5]{grid-template-columns:repeat(3,minmax(0,auto));justify-content:start;gap:8px clamp(20px,3vw,40px);font-size:.9375rem;display:grid}.meta dt[data-v-f30c70f5]{color:var(--ink-3);font-size:var(--step--1)}.meta dd[data-v-f30c70f5]{margin:2px 0 0}.meta__private[data-v-f30c70f5]{color:var(--ink-2);align-items:center;gap:8px;margin-top:28px;font-size:.9375rem;display:inline-flex}.meta__visit[data-v-f30c70f5]{border:1px solid var(--ink);margin-top:28px;padding:12px 20px;font-weight:600;text-decoration:none;transition:background-color .15s,color .15s;display:inline-block}.meta__visit[data-v-f30c70f5]:hover{background:var(--ink);color:var(--black)}@container project-info (width<=400px){.meta[data-v-f30c70f5]{grid-template-columns:1fr;gap:12px}}.stack__item[data-v-f01b4f97]{top:calc(var(--header-h) + 8px + var(--i) * 14px);margin-bottom:14vh;position:sticky}.stack__item[data-v-f01b4f97]:last-child{margin-bottom:0}.stack__card[data-v-f01b4f97]{background:var(--black);border:1px solid var(--line);transform-origin:50% 0;transform:scale(calc(1 - var(--covered,0) * .06));will-change:transform;grid-template-columns:minmax(0,7fr) minmax(0,5fr);display:grid;position:relative}.stack__visual[data-v-f01b4f97]{border-right:1px solid var(--line);min-width:0;min-height:0;position:relative}.stack__visual[data-v-f01b4f97]:before{content:"";padding-top:62.5%;display:block}.stack__visual[data-v-f01b4f97]>*{position:absolute;inset:0}.stack__visual[data-v-f01b4f97] img{object-fit:contain;object-position:center top}.stack__info[data-v-f01b4f97]{flex-direction:column;justify-content:end;gap:14px;min-height:0;padding:clamp(20px,2.4vw,40px);display:flex;container:project-info/inline-size}.stack__client[data-v-f01b4f97]{color:var(--ink-3);align-items:center;gap:10px;font-size:.9375rem;display:flex}.stack__example[data-v-f01b4f97]{color:var(--rec);border:1px solid;padding:1px 6px;font-size:.6875rem}.stack__title[data-v-f01b4f97]{font-size:var(--step-4);text-wrap:balance}.stack__summary[data-v-f01b4f97]{color:var(--ink-2);max-width:46ch}.stack__details[data-v-f01b4f97]{color:var(--ink-2);text-underline-offset:5px;cursor:pointer;background:0 0;border:0;align-self:start;margin-top:4px;padding:0;font-size:.9375rem;text-decoration:underline;text-decoration-thickness:1px}.stack__details[data-v-f01b4f97]:hover{color:var(--ink)}.stack__shade[data-v-f01b4f97]{background:var(--black);opacity:calc(var(--covered,0) * .65);pointer-events:none;position:absolute;inset:0}@media (width<=1440px){.stack__title[data-v-f01b4f97]{font-size:var(--step-3)}.stack__summary[data-v-f01b4f97]{-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.stack__info[data-v-f01b4f97] .meta__visit{margin-top:12px}}@media (width<=1279px){.stack[data-v-f01b4f97]{gap:56px;display:grid}.stack__item[data-v-f01b4f97]{height:auto;margin:0;position:static}.stack__card[data-v-f01b4f97]{grid-template-columns:1fr;transform:none}.stack__visual[data-v-f01b4f97]{border-right:0;border-bottom:1px solid var(--line)}.stack__shade[data-v-f01b4f97]{display:none}}.grid-block[data-v-4974bd6e]{margin-top:clamp(96px,16vh,180px)}.grid-block__bar[data-v-4974bd6e]{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:baseline;gap:16px 32px;margin-bottom:40px;padding-bottom:28px;display:flex}.grid-block__heading[data-v-4974bd6e]{font-size:var(--step-4);margin-right:auto}.grid-block__count[data-v-4974bd6e]{color:var(--ink-3);text-align:right;min-width:10ch;font-size:.9375rem}.filters[data-v-4974bd6e]{flex-wrap:wrap;gap:8px;display:flex}.filters__btn[data-v-4974bd6e]{border:1px solid var(--line);cursor:pointer;background:0 0;padding:8px 14px;font-size:.9375rem;transition:border-color .15s,background-color .15s,color .15s}.filters__btn[data-v-4974bd6e]:hover{border-color:var(--ink-2)}.filters__btn[aria-pressed=true][data-v-4974bd6e]{background:var(--ink);border-color:var(--ink);color:var(--black)}.cards[data-v-4974bd6e]{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:48px 24px;display:grid}.card[data-v-4974bd6e]{align-content:start;gap:6px;display:grid;position:relative}.card__visual[data-v-4974bd6e]{aspect-ratio:16/10;border:1px solid var(--line);margin-bottom:10px;transition:border-color .2s}.card:hover .card__visual[data-v-4974bd6e]{border-color:var(--ink-3)}.card__client[data-v-4974bd6e]{color:var(--ink-3);align-items:center;gap:8px;font-size:.875rem;display:flex}.card__example[data-v-4974bd6e]{color:var(--rec);border:1px solid;padding:0 5px;font-size:.625rem}.card__title[data-v-4974bd6e]{font-size:var(--step-1);font-weight:650;line-height:1.25}.card__open[data-v-4974bd6e]{text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.card__open[data-v-4974bd6e]:after{content:"";position:absolute;inset:0}.card__open[data-v-4974bd6e]:focus-visible{outline:none}.card[data-v-4974bd6e]:has(.card__open:focus-visible){outline:2px solid var(--ink);outline-offset:6px}.card__status[data-v-4974bd6e]{color:var(--ink-2);font-size:.875rem}.grid-block__empty[data-v-4974bd6e]{color:var(--ink-2);padding-block:48px}.modal[data-v-900698e0]{width:min(1240px, calc(100vw - 2 * var(--gutter)));border:1px solid var(--line);background:var(--black);max-width:none;height:min(88svh,900px);max-height:none;color:var(--ink);padding:0}.modal[data-v-900698e0]::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000000d1}.modal[open][data-v-900698e0]{animation:modal-in-900698e0 .28s var(--ease-out)}@keyframes modal-in-900698e0{0%{opacity:0;transform:translateY(16px)}}.modal__inner[data-v-900698e0]{height:100%;position:relative}.modal__scroll[data-v-900698e0]{overscroll-behavior:contain;grid-template-columns:minmax(0,8fr) minmax(0,4fr);height:100%;display:grid;overflow:auto}.modal__media[data-v-900698e0]{background:var(--line);align-content:start;gap:1px;display:grid}.modal__media img[data-v-900698e0]{background:var(--surface);width:100%;height:auto}.modal__flow[data-v-900698e0]{aspect-ratio:4/3;min-height:100%}.modal__info[data-v-900698e0]{padding:clamp(28px,3vw,48px);align-self:start;gap:18px;padding-top:72px;display:grid;position:sticky;top:0;container:project-info/inline-size}.modal__client[data-v-900698e0]{color:var(--ink-3);font-size:.9375rem}.modal__title[data-v-900698e0]{font-size:var(--step-4);text-wrap:balance}.modal__summary[data-v-900698e0]{color:var(--ink-2);margin-bottom:10px}.modal__close[data-v-900698e0]{border:1px solid var(--line);background:var(--black);cursor:pointer;place-items:center;width:44px;height:44px;display:grid;position:absolute;top:12px;right:12px}.modal__close[data-v-900698e0]:hover{border-color:var(--ink)}@media (width<=900px){.modal[data-v-900698e0]{border:0;width:100vw;max-width:100vw;height:100svh;max-height:100svh}.modal__scroll[data-v-900698e0]{grid-template-columns:1fr}.modal__info[data-v-900698e0]{padding-top:28px;position:static}}.projects[data-v-4145f74e]{padding-bottom:clamp(96px,16vh,180px)}.projects__head[data-v-4145f74e]{grid-template-columns:minmax(0,4fr) minmax(0,8fr);align-items:end;gap:clamp(24px,4vw,64px);margin-bottom:clamp(40px,6vw,72px);display:grid}.projects__heading[data-v-4145f74e]{font-size:var(--step-5)}.projects__intro[data-v-4145f74e]{color:var(--ink-2);max-width:52ch}@media (width<=900px){.projects__head[data-v-4145f74e]{grid-template-columns:1fr}}.contact[data-v-73328cb3]{border-top:1px solid var(--line);grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,6vw,96px);padding-block:clamp(96px,14vh,160px);display:grid}.contact__heading[data-v-73328cb3]{font-size:var(--step-5);text-wrap:balance}.contact__lead[data-v-73328cb3]{color:var(--ink-2);max-width:40ch;margin-top:20px}.contact__direct[data-v-73328cb3]{margin-top:48px}.contact__direct-label[data-v-73328cb3]{color:var(--ink-3);margin-bottom:10px;font-size:.9375rem}.contact__direct ul[data-v-73328cb3]{font-size:var(--step-1);gap:6px;display:grid}.contact__direct a[data-v-73328cb3]{text-underline-offset:6px;text-decoration:underline;text-decoration-thickness:1px}.contact__pending[data-v-73328cb3]{color:var(--rec);font-size:.8125rem}.form[data-v-73328cb3]{align-content:start;gap:28px;display:grid}.form__row[data-v-73328cb3]{grid-template-columns:1fr 1fr;gap:28px;display:grid}.field[data-v-73328cb3]{gap:8px;display:grid}.field__label[data-v-73328cb3]{color:var(--ink-2);font-size:.9375rem}.field__optional[data-v-73328cb3]{color:var(--ink-3)}.field input[data-v-73328cb3],.field select[data-v-73328cb3],.field textarea[data-v-73328cb3]{border:0;border-bottom:1px solid var(--ink-3);width:100%;font-size:var(--step-0);background:0 0;border-radius:0;padding:10px 0;transition:border-color .15s}.field select[data-v-73328cb3]{appearance:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23b8b8b8' fill='none' stroke-width='1.5'/%3E%3C/svg%3E") right 4px center no-repeat;padding-right:24px}.field select option[data-v-73328cb3]{background:var(--black)}.field textarea[data-v-73328cb3]{resize:vertical;min-height:140px;line-height:1.5}.field textarea[data-v-73328cb3]::placeholder{color:var(--ink-3)}.field input[data-v-73328cb3]:focus-visible,.field select[data-v-73328cb3]:focus-visible,.field textarea[data-v-73328cb3]:focus-visible{border-bottom-color:var(--ink);box-shadow:0 1px 0 0 var(--ink);outline:none}.field[data-v-73328cb3] :user-invalid{border-bottom-color:var(--rec)}.form__actions[data-v-73328cb3]{flex-wrap:wrap;align-items:center;gap:16px 24px;display:flex}.form__submit[data-v-73328cb3]{border:1px solid var(--ink);background:var(--ink);color:var(--black);cursor:pointer;padding:16px 28px;font-weight:650;transition:background-color .15s,color .15s}.form__submit[data-v-73328cb3]:hover{color:var(--ink);background:0 0}.form__submit[data-v-73328cb3]:disabled{opacity:.6;cursor:progress}.form__status[data-v-73328cb3]{max-width:44ch;font-size:.9375rem}.form__status.is-error[data-v-73328cb3]{color:#f87171}@media (width<=900px){.contact[data-v-73328cb3]{grid-template-columns:1fr}}@media (width<=560px){.form__row[data-v-73328cb3]{grid-template-columns:1fr}}.footer[data-v-e081958d]{border-top:1px solid var(--line);color:var(--ink-2);flex-wrap:wrap;align-items:baseline;gap:12px 32px;padding-block:40px;font-size:.9375rem;display:flex}.footer__video[data-v-e081958d]{margin-right:auto}.footer a[data-v-e081958d]{color:var(--ink);text-underline-offset:4px;text-decoration-thickness:1px}.footer__legal[data-v-e081958d]{color:var(--ink-3)}
