@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+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper: #ffffff;--ink: #14181c;--ink-soft: #4c545c;--muted: #979ea6;--line: #e6e8ea;--brand: #123a52;--wash: #f4f5f6;--sans: "Archivo Variable", -apple-system, "Helvetica Neue", Arial, sans-serif;--wdth-condensed: "wdth" 66;--wdth-normal: "wdth" 94;--ease-slide: cubic-bezier(.77, 0, .18, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--gutter: clamp(20px, 4vw, 56px)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--sans);font-variation-settings:var(--wdth-normal);color:var(--ink);background:var(--paper);line-height:1.5;-webkit-font-smoothing:antialiased}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}input,textarea,select{font:inherit;color:inherit}::selection{background:var(--brand);color:#fff}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}h1,h2,h3,h4{font-weight:500;font-variation-settings:var(--wdth-condensed);line-height:1.05;letter-spacing:.01em}.u-label{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-variation-settings:var(--wdth-normal)}.nav{position:fixed;inset:0 0 auto 0;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:18px var(--gutter);pointer-events:none}.nav:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:var(--page-bg, var(--paper));border-bottom:1px solid var(--line);opacity:0;transition:opacity .25s var(--ease-out)}.nav.scrolled:before{opacity:1}.nav>*{pointer-events:auto}.nav-logo svg{height:44px;width:auto;display:block;color:var(--brand);transition:color .3s}.nav-logo:hover svg{color:var(--ink)}.nav-links{display:flex;gap:28px}.nav-link{font-size:13px;text-transform:uppercase;letter-spacing:.16em;padding:4px 0;position:relative;color:var(--ink)}.nav-link:after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease-out)}.nav-link:hover:after,.nav-link[aria-expanded=true]:after{transform:scaleX(1);transform-origin:left}.gallery{position:relative;height:100vh;height:100dvh}.slides-viewport{height:100%;overflow:hidden;touch-action:pan-y;cursor:grab}.slides-viewport.dragging{cursor:grabbing}.slides-track{display:flex;align-items:stretch;gap:16px;height:100%;width:max-content;padding:84px var(--gutter) 20px;will-change:transform}.slide{position:relative;flex:none;height:100%;width:calc((100vh - 104px) * var(--aspect, .75));width:calc((100dvh - 104px) * var(--aspect, .75));max-width:88vw;background:var(--wash);overflow:hidden}.slide-frame{position:absolute;top:0;right:0;bottom:0;left:0;display:block;overflow:hidden;-webkit-user-drag:none}.tile-media{position:relative;width:100%;background:var(--wash)}.slide-frame .tile-media{position:absolute;top:0;right:0;bottom:0;left:0}.tile-media img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:0;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.tile-media img.active{opacity:1}.m-meta{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:34px 18px 14px;color:#fff;pointer-events:none}.m-meta:before,.m-meta:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none}.m-meta:before{background:linear-gradient(transparent,#080a0c8c)}.m-meta:after{background:linear-gradient(transparent,#080a0cf2 42%,#080a0cfa);opacity:0;transition:opacity .45s var(--ease-out)}.m-tile:hover .m-meta:after,.slide-frame:hover .m-meta:after,.no-hover .m-tile.in-view .m-meta:after,.no-hover .slide-frame.in-view .m-meta:after{opacity:1}.m-meta h3{font-size:clamp(24px,2.2vw,32px);font-variation-settings:var(--wdth-condensed);font-weight:500;text-shadow:0 1px 18px rgba(0,0,0,.35)}.m-credits{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .45s var(--ease-out),opacity .4s var(--ease-out)}.m-credits>div{overflow:hidden}.m-credits .credit-lines{padding-top:8px;font-size:14.5px;display:grid;gap:3px}.m-credits .credit-lines span{display:block}.m-credits .credit-lines b{font-weight:400;color:#ffffffa6}.m-tile:hover .m-credits,.slide-frame:hover .m-credits,.no-hover .m-tile.in-view .m-credits,.no-hover .slide-frame.in-view .m-credits{grid-template-rows:1fr;opacity:1}.settle{opacity:0;transform:scale(.94)}.settle.settled{opacity:1;transform:scale(1);transition:opacity .7s var(--ease-out) var(--settle-delay, 0ms),transform .7s var(--ease-out) var(--settle-delay, 0ms)}@media (prefers-reduced-motion: reduce){.settle{opacity:1;transform:none;transition:none}}.masonry{columns:3;column-gap:18px}.m-tile{position:relative;display:block;break-inside:avoid;margin-bottom:18px;overflow:hidden;background:var(--wash)}.m-tile .tile-media{aspect-ratio:var(--ar, 4 / 5)}.home-grid{padding:clamp(46px,7vh,80px) var(--gutter) 20px}.grid-head{display:flex;align-items:center;justify-content:space-between;gap:16px 24px;flex-wrap:wrap;margin-bottom:26px}.cat-filter{display:inline-flex;align-items:center;gap:12px}.cat-filter select{font:inherit;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:99px;padding:9px 34px 9px 16px;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%2314181c' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:10px;transition:border-color .25s}.cat-filter select:hover,.cat-filter select:focus-visible{border-color:var(--ink);outline:none}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;--ink: #14181c;--ink-soft: #4c545c;--muted: #979ea6;--line: #e6e8ea;--wash: #f4f5f6;background:#fff;color:var(--ink);transform:translateY(103%);transition:transform .75s var(--ease-slide);overflow-y:auto;overscroll-behavior:contain}.overlay.open{transform:translateY(0)}.overlay-close{position:fixed;top:18px;right:var(--gutter);z-index:5;font-size:13px;text-transform:uppercase;letter-spacing:.16em;color:var(--ink);opacity:0;transition:opacity .3s .5s}.overlay.open .overlay-close{opacity:1}.overlay-inner{padding:clamp(90px,14vh,150px) var(--gutter) 90px;max-width:1200px}.reveal{opacity:0;transform:translateY(26px)}.overlay.open .reveal{opacity:1;transform:translateY(0);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out);transition-delay:calc(.25s + min(var(--stagger, 0) * .07s,.85s))}.info-statement{font-size:clamp(26px,3.6vw,52px);line-height:1.16;font-variation-settings:var(--wdth-condensed);font-weight:500;max-width:20em}.info-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:48px var(--gutter);margin-top:clamp(48px,8vh,90px)}@media (max-width: 760px){.info-cols{grid-template-columns:1fr}}.info-col .u-label{display:block;margin-bottom:18px}.info-col ul{list-style:none}.info-col li{padding:5px 0;font-size:15px;border-bottom:1px solid var(--line)}.info-col li:last-child{border-bottom:0}.info-clients{margin-top:clamp(48px,8vh,90px)}.info-clients .u-label{display:block;margin-bottom:18px}.info-clients ul{list-style:none;columns:4;column-gap:var(--gutter)}.info-clients li{padding:5px 0;font-size:15px;border-bottom:1px solid var(--line);break-inside:avoid}@media (max-width: 980px){.info-clients ul{columns:3}}@media (max-width: 640px){.info-clients ul{columns:2}}.info-contact a{border-bottom:1px solid var(--ink)}.info-contact p{margin-bottom:10px;font-size:15px}.social-icons{display:flex;gap:10px;margin-top:16px}.social-btn{width:42px;height:42px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;transition:background .25s,color .25s,border-color .25s}.social-btn svg{width:19px;height:19px;display:block}.social-btn:hover{background:var(--ink);border-color:var(--ink);color:#fff}#overlay-index .overlay-inner{max-width:none}.index-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:30px 14px;margin-top:26px}.index-card{display:block;min-width:0}.index-card .thumb{display:block;aspect-ratio:4 / 5;overflow:hidden;background:var(--wash)}.index-card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease-out)}.index-card:hover .thumb img{transform:scale(1.035)}.index-card .t{display:block;margin-top:9px;font-size:15.5px;font-variation-settings:var(--wdth-condensed);font-weight:500;line-height:1.2}.index-card .c{display:block;margin-top:2px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.project{min-height:100dvh;background:var(--page-bg, var(--paper))}.project.on-dark{--ink: #f4f5f6;--ink-soft: #c3c8cd;--muted: #8d949b;--line: rgba(255, 255, 255, .16);--wash: rgba(255, 255, 255, .06);color:var(--ink)}.project.on-dark .nav-logo svg{color:#fff}.project.custom-ink{color:var(--ink)}.project.custom-ink .nav-logo svg{color:var(--ink)}.proj{padding-top:110px}.proj-loading{padding:40vh var(--gutter);text-align:center}.proj-head{padding:0 var(--gutter);margin-bottom:34px;max-width:980px}.proj-title{font-size:clamp(34px,5vw,68px)}.proj-credits{margin-top:16px;display:grid;gap:4px;font-size:14px}.proj-credits b{font-weight:400;color:var(--muted)}.proj-desc{font-size:14.5px;color:var(--ink-soft);max-width:44em;margin-top:16px}.rh-slider{position:relative;width:100%;overflow:hidden;-webkit-user-select:none;user-select:none;touch-action:pan-y;cursor:grab}.rh-slider.dragging{cursor:grabbing}.rh-slider.focus.mobile{transition:height .7s cubic-bezier(.22,1,.26,1)}.rh-slider-track{display:flex;align-items:center;height:100%;will-change:transform}.rh-slider.focus .rh-slider-track,.rh-slider.focus .rh-slider-nudge{align-items:flex-start}.rh-slider-nudge{display:flex;align-items:center;gap:clamp(14px,2vw,28px);height:100%}.rh-slider.idle .rh-slider-nudge{animation:rh-idle-nudge 4.2s var(--ease-out) infinite}@keyframes rh-idle-nudge{0%,30%,to{transform:translate(0)}9%{transform:translate(-32px)}15%{transform:translate(5px)}21%{transform:translate(-10px)}}.rh-slide-item{height:100%;flex-shrink:0;position:relative;background:var(--wash)}.rh-slide-item img{height:100%;width:100%;object-fit:cover;opacity:0;transition:opacity .4s}.rh-slide-item img.loaded{opacity:1}.rh-slider-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:4;width:52px;height:52px;border-radius:50%;background:#ffffffeb;border:1px solid var(--line);color:#14181c;display:grid;place-items:center;transition:opacity .3s,background .3s;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.rh-slider-btn.prev{left:24px}.rh-slider-btn.next{right:24px}.rh-slider-btn:hover{background:#14181c;color:#fff}.rh-slider-btn svg{width:18px;height:18px}.rh-slider-btn[hidden]{display:none}.rh-slider-btn.words{width:auto;height:auto;padding:6px 2px;background:none;border:0;border-radius:0;-webkit-backdrop-filter:none;backdrop-filter:none;color:var(--ink);font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;writing-mode:vertical-rl}.rh-slider-btn.words.prev{transform:translateY(-50%) rotate(180deg)}.rh-slider-btn.words:hover{background:none;color:var(--brand)}.project.on-dark .rh-slider-btn.words:hover,.project.custom-ink .rh-slider-btn.words:hover{color:var(--ink-soft)}.rh-slider-counter{padding:16px var(--gutter) 0;font-variant-numeric:tabular-nums}.block{margin:clamp(40px,7vh,84px) 0}@media (max-width: 820px){.vis-desktop{display:none!important}}@media (min-width: 821px){.vis-mobile{display:none!important}}.block-text{padding:0 var(--gutter)}.block-text .inner{max-width:660px}.block-text.align-center .inner{margin:0 auto;text-align:center}.block-text.align-right .inner{margin-left:auto;text-align:right}.block-text h3{font-size:clamp(22px,2.6vw,34px);margin-bottom:14px}.block-text p{color:var(--ink-soft);white-space:pre-line}.block-text.size-lg p{font-size:clamp(19px,2vw,25px);line-height:1.4;color:var(--ink)}.block-text.size-sm p{font-size:13.5px}.block-carousel{display:flex;justify-content:center;align-items:center;position:relative}.block-carousel img{position:absolute;max-height:100%;max-width:86vw;width:auto;height:auto;opacity:0}.block-carousel img.active{opacity:1}.block-carousel{touch-action:pan-y}.block-carousel .car-btn{position:absolute;top:50%;z-index:4;padding:6px 2px;background:none;border:0;color:var(--ink);font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;writing-mode:vertical-rl;opacity:0;transition:opacity .35s}.block-carousel .car-btn.next{right:12px;transform:translateY(-50%)}.block-carousel .car-btn.prev{left:12px;transform:translateY(-50%) rotate(180deg)}.block-carousel:hover .car-btn,.block-carousel.controls-on .car-btn{opacity:1}.block-carousel .car-btn:hover{color:var(--brand)}.block-video{padding:0 var(--gutter);display:flex;justify-content:center}.block-video.full{padding:0}.video-frame{position:relative;max-width:1280px;background:#000}.block-video.full .video-frame{max-width:none;width:100%!important}.video-frame iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}.block-grid{padding:0 var(--gutter);column-gap:20px}.block-grid figure{margin:0 0 20px;break-inside:avoid}.block-grid img{width:100%;display:block;cursor:zoom-in}.rh-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#0a0c0ef0;display:flex;align-items:center;justify-content:center;touch-action:pan-y}.rh-lightbox img{max-width:94vw;max-height:88vh;object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.rh-lightbox button{background:none;border:0;color:#ffffffd9;transition:color .25s}.rh-lightbox button:hover{color:#fff}.rh-lightbox .lb-close{position:absolute;top:14px;right:16px;font-size:22px;padding:10px;z-index:2}.rh-lightbox .lb-nav{position:absolute;top:50%;transform:translateY(-50%);font-size:44px;line-height:1;padding:20px 14px;z-index:2}.rh-lightbox .lb-prev{left:4px}.rh-lightbox .lb-next{right:4px}.rh-lightbox .lb-count{position:absolute;bottom:16px;left:50%;transform:translate(-50%);color:#ffffffb3}.block-cta{padding:0 var(--gutter)}.block-cta .inner{display:grid;gap:10px}.block-cta.align-center .inner{text-align:center}.block-cta.align-right .inner{text-align:right}.cta-line{font-variation-settings:var(--wdth-condensed);font-weight:500;font-size:clamp(22px,2.6vw,34px);line-height:1.25}.block-cta.size-lg .cta-line{font-size:clamp(26px,3.6vw,50px)}.cta-line .l{color:var(--muted)}.cta-line a{border-bottom:2px solid var(--line);transition:border-color .3s,color .3s}.cta-line a:hover{color:var(--brand);border-color:var(--brand)}.project.on-dark .cta-line a:hover{color:inherit;border-color:currentColor}.block-credits{padding:0 var(--gutter)}.block-credits .inner{max-width:660px;display:grid;gap:8px}.block-credits.align-center .inner{margin:0 auto}.block-credits.align-right .inner{margin-left:auto}.block-credits.size-lg .row{font-size:16.5px;padding-bottom:10px}.block-credits.size-lg .row .l{font-size:12px}.block-credits .row{display:flex;gap:16px;border-bottom:1px solid var(--line);padding-bottom:8px;font-size:14px}.block-credits .row .l{width:150px;flex-shrink:0;text-transform:uppercase;font-size:10.5px;letter-spacing:.14em;color:var(--muted);padding-top:3px}.spacer-sm{height:4vh}.spacer-md{height:10vh}.spacer-lg{height:20vh}.block-related{padding:0 var(--gutter)}.block-related>.u-label{margin-bottom:22px;display:block}.related-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}.related-tile{position:relative;aspect-ratio:4 / 5;overflow:hidden;background:var(--wash);display:block}.related-tile img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:0}.related-tile img.active{opacity:1}.related-tile .tile-meta{position:absolute;left:18px;bottom:14px;right:18px;z-index:2;color:#fff;opacity:0;transform:translateY(8px);transition:opacity .4s var(--ease-out),transform .4s var(--ease-out)}.related-tile:after{content:"";position:absolute;top:55%;right:0;bottom:0;left:0;background:linear-gradient(transparent,#0a0e128c);opacity:0;transition:opacity .4s;z-index:1}.related-tile:hover .tile-meta,.no-hover .related-tile.in-view .tile-meta{opacity:1;transform:translateY(0)}.related-tile:hover:after,.no-hover .related-tile.in-view:after{opacity:1}.tile-meta .t{font-size:21px;font-variation-settings:var(--wdth-condensed);font-weight:500}.tile-meta .c{font-size:11px;letter-spacing:.12em;text-transform:uppercase;opacity:.8;margin-top:3px}.site-footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:60px var(--gutter) 30px;color:var(--muted);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase}@media (max-width: 980px){.masonry{columns:2;column-gap:14px}.m-tile{margin-bottom:14px}}@media (max-width: 820px){.nav-logo svg{height:34px}.slides-track{padding-top:72px;gap:12px}.slide{width:calc((100vh - 92px) * var(--aspect, .75));width:calc((100dvh - 92px) * var(--aspect, .75))}.rh-slider-btn{width:44px;height:44px}}@media (max-width: 600px){.masonry{columns:1}}@media (max-width: 540px){.index-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:22px 10px}}
