:root{--dci-cream:#f3f0e8;--dci-cream-light:#faf8f3;--dci-ink:#171b18;--dci-red:#b52b22;--dci-red-deep:#92281f;--dci-stone-100:#e7e4db;--dci-stone-200:#d1cec4;--dci-stone-500:#7b7f75;--dci-stone-700:#5b6059;--dci-white:#ffffff;--dci-green:#216044;--dci-blue:#205c91;--dci-space-1:4px;--dci-space-2:8px;--dci-space-3:12px;--dci-space-4:16px;--dci-space-5:20px;--dci-space-6:24px;--dci-space-8:32px;--dci-space-10:40px;--dci-space-12:48px;--dci-space-16:64px;--dci-duration-fast:160ms;--dci-duration-normal:240ms;--dci-shadow-soft:0 16px 22px #171b180a;--color-background:var(--dci-cream);--color-surface:var(--dci-cream-light);--color-surface-subtle:var(--dci-stone-100);--color-text:var(--dci-ink);--color-text-secondary:var(--dci-stone-700);--color-text-inverse:var(--dci-cream);--color-accent:var(--dci-red);--color-accent-hover:var(--dci-red-deep);--color-divider:var(--dci-stone-200);--color-control-border:var(--dci-stone-500);--color-focus:var(--dci-blue);--color-error:var(--dci-red-deep);--color-success:var(--dci-green);--font-brand:'Be Vietnam Pro', Arial, sans-serif;--font-size-body:16px;--font-size-supporting:14px;--font-size-label:13px;--font-size-caption:12px;--space-section:clamp(76px, 7.8vw, 136px);--shadow-navigation:var(--dci-shadow-soft);--button-height:52px;--button-padding-x:var(--dci-space-6);--button-background:var(--color-text);--button-foreground:var(--color-text-inverse);--control-height:52px;--control-padding:var(--dci-space-4);--control-border:var(--color-control-border);--card-padding:clamp(24px, 2.5vw, 40px);--card-background:var(--color-surface-subtle);--paper:var(--color-background);--ink:var(--color-text);--red:var(--color-accent);--muted:var(--color-text-secondary);--line:var(--color-divider);--space:var(--space-section)}html{scroll-padding-top:136px;scroll-padding-bottom:32px}body{font-family:var(--font-brand);font-size:var(--font-size-body)}main,.contact-grid>*,.form-row>*,.two-copy>*{min-width:0}h1,h2,h3{text-wrap:pretty}p,figcaption,.editorial-note{overflow-wrap:break-word}.eyebrow{font-size:var(--font-size-caption);letter-spacing:.1em}.image-caption,figcaption,.editorial-note,.content-note,.article-meta,.project-meta,.case-label,.space-category,.pill{font-size:var(--font-size-caption);line-height:1.75}.two-copy{gap:var(--dci-space-10);font-size:var(--font-size-body)}.two-copy p,.page-intro p{max-width:64ch}.page-intro p.muted{font-size:var(--font-size-supporting);line-height:1.85}.hero-intro{font-size:var(--font-size-body)}.hero-intro .hero-actions .text-link{font-size:var(--font-size-label)}.image-tag>span{font-size:11px;line-height:1.65}a,button,input,select,textarea{-webkit-tap-highlight-color:#fff0}a,button{transition:color var(--dci-duration-fast) ease,background-color var(--dci-duration-fast) ease,border-color var(--dci-duration-fast) ease}:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px;scroll-margin-top:140px;scroll-margin-bottom:100px}.precision :focus-visible,.site-footer :focus-visible,.image-dialog :focus-visible{outline-color:var(--color-text-inverse)}.button{min-height:var(--button-height);padding-inline:var(--button-padding-x);font-size:var(--font-size-supporting);line-height:1.5}.button-dark{background:var(--button-background);color:var(--button-foreground)}.button-dark:hover{background:var(--color-accent);border-color:var(--color-accent)}.button-dark:active{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.text-link{min-height:40px;align-items:center;font-size:var(--font-size-supporting)}.hero-actions .button{min-height:var(--button-height);padding:15px 22px}.primary-nav .menu{font-size:var(--font-size-supporting)}.primary-nav .sub-menu a{min-height:44px;display:flex;align-items:center}.project-meta{margin-block:20px 12px}.project-card p,.space-card p{font-size:15px;line-height:1.85}.project-card h3,.space-card h2{line-height:1.3}.project-card>img{transition:filter var(--dci-duration-normal) ease}.project-card:hover>img{filter:brightness(.97)}.space-category{letter-spacing:.055em;margin-top:var(--dci-space-6)}.space-card h2{margin-top:var(--dci-space-3)}.filter-bar{gap:var(--dci-space-2);padding-block:24px 40px}.filter-bar button{min-height:48px;font-size:var(--font-size-label);border-color:var(--control-border);padding:12px 20px}.filter-bar button:hover:not([aria-pressed='true']){background:var(--color-surface-subtle)}.space-grid.is-filtered{align-items:start;row-gap:var(--dci-space-12)}.space-grid.is-filtered .space-card:nth-child(n){margin:0;max-width:none;grid-column:auto}.space-grid.is-filtered .space-card:nth-child(n) img{aspect-ratio:1.38}.service-list>a{padding-block:32px}.service-list p{font-size:var(--font-size-supporting);line-height:1.85}.service-list .index{font-size:var(--font-size-caption)}.precision-grid>div>p:not(.eyebrow),.precision-steps article p,.process-grid p{font-size:15px;line-height:1.85}.precision-steps article>span,.process-grid article>span{font-size:var(--font-size-caption)}.precision .eyebrow{color:var(--dci-stone-200)}.insight-card{padding:var(--card-padding);background:var(--card-background);border:1px solid #fff0}.insight-card:hover,.insight-card:focus-visible{background:var(--color-surface);border-color:var(--color-divider)}.insight-card.red-card{--card-background:var(--color-accent);background:var(--card-background);color:var(--dci-white);border-color:var(--color-accent)}.insight-card.red-card:hover,.insight-card.red-card:focus-visible{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.insight-card.red-card p,.insight-card.red-card .text-link{color:var(--dci-white)}.insight-card p,.editorial-card p{font-size:var(--font-size-supporting);line-height:1.85}.insight-card .text-link,.editorial-card .text-link{font-size:var(--font-size-label)}.editorial-card .eyebrow{font-size:11px}.editorial-card{padding-top:var(--dci-space-6)}.editorial-card h3{line-height:1.35}.legacy-article .service-detail p{font-size:var(--font-size-body)}.legacy-article .service-detail .muted{font-size:var(--font-size-supporting)}.legacy-content .service-detail p,.service-detail li{line-height:1.85}.footer-bottom,.footer-bottom a{font-size:var(--font-size-caption);line-height:1.8}.site-footer .text-link{color:var(--color-text-inverse)}.dci-pagination .page-numbers{min-width:44px;min-height:44px;text-align:center}.brief-form[data-dci-lead-form]{padding:clamp(22px, 3vw, 44px);background:var(--color-surface);border:1px solid var(--color-divider);align-self:start}.brief-form[data-dci-lead-form] .form-top{padding-top:0;margin-bottom:var(--dci-space-8);font-size:var(--font-size-caption)}.brief-form[data-dci-lead-form] label,.brief-form[data-dci-lead-form] legend{font-size:var(--font-size-label);line-height:1.6}.brief-form[data-dci-lead-form] input:not([type='radio']):not([type='checkbox']):not([type='hidden']),.brief-form[data-dci-lead-form] textarea,.brief-form[data-dci-lead-form] select{min-height:var(--control-height);margin-top:var(--dci-space-2);padding:12px 0;background-color:#fff0;color:var(--color-text);font-size:var(--font-size-body);line-height:1.65;border-bottom-color:var(--control-border);border-radius:0}.brief-form[data-dci-lead-form] input::placeholder,.brief-form[data-dci-lead-form] textarea::placeholder{color:var(--color-text-secondary);opacity:1}.brief-form[data-dci-lead-form] textarea{min-height:120px}.brief-form[data-dci-lead-form] .choice-row{gap:var(--dci-space-2)}.brief-form[data-dci-lead-form] .choice-row span{display:flex;align-items:center;min-height:48px;padding:11px 15px;border-color:var(--control-border);font-size:var(--font-size-label)}.brief-form[data-dci-lead-form] .choice-row input:checked+span{background:var(--color-text);color:var(--color-text-inverse);border-color:var(--color-text)}.brief-form[data-dci-lead-form] .choice-row input:focus-visible+span{outline-color:var(--color-focus)}.brief-form[data-dci-lead-form] label.consent{padding-block:var(--dci-space-3);min-height:48px;font-size:var(--font-size-label);line-height:1.8}.brief-form[data-dci-lead-form] .consent input{width:20px;height:20px;margin-top:2px}.brief-form[data-dci-lead-form] .consent a{text-decoration-thickness:1px;text-underline-offset:3px}.brief-form[data-dci-lead-form]>.button{min-height:56px;font-size:var(--font-size-supporting)}.brief-form[data-dci-lead-form] .button:disabled{opacity:.8;cursor:wait}.brief-form[data-dci-lead-form] .form-note{font-size:var(--font-size-caption);line-height:1.8}.brief-form[data-dci-lead-form] input:not([type='radio']):not([type='checkbox']):not([type='hidden'])[aria-invalid='true'],.brief-form[data-dci-lead-form] textarea[aria-invalid='true'],.brief-form[data-dci-lead-form] select[aria-invalid='true']{border-color:var(--color-error)}.brief-form .dci-field-error{color:var(--color-error);font-size:var(--font-size-label);line-height:1.7}.brief-form .dci-error-summary{border-color:var(--color-error);color:var(--color-error)}.brief-form .dci-error-summary a{text-decoration:underline;text-underline-offset:3px}.brief-form .dci-form-progress{color:var(--color-text-secondary);font-size:var(--font-size-label)}.brief-result:focus{outline:3px solid var(--color-focus);outline-offset:4px}@media (max-width:1100px){.primary-nav .menu{gap:20px;font-size:var(--font-size-label)}.service-list p{font-size:var(--font-size-supporting)}.contact-grid{gap:5vw}}@media (max-width:800px){.menu-toggle{min-width:104px;min-height:48px;padding-block:12px}.primary-nav a{min-height:48px}.primary-nav .menu{font-size:18px}.primary-nav.is-open{padding-top:16px;padding-bottom:24px;box-shadow:var(--shadow-navigation)}.hero-intro,.two-copy{font-size:var(--font-size-body)}.hero-actions .button{min-height:var(--button-height)}.project-card p,.space-card p{font-size:var(--font-size-supporting)}.contact-grid{gap:var(--dci-space-10)}}@media (max-width:560px){html{scroll-padding-top:104px;scroll-padding-bottom:100px}:focus-visible{scroll-margin-top:108px;scroll-margin-bottom:104px}.eyebrow,.editorial-card .eyebrow{font-size:11px}.image-caption,figcaption,.wide-figure figcaption,.detail-figure figcaption,.editorial-note,.project-meta,.case-label,.space-category,.pill,.article-meta{font-size:var(--font-size-caption)}.image-caption{flex-wrap:wrap;gap:6px}.image-tag>span{font-size:11px}.page-hero h1{line-height:1.2}.page-intro p.muted{font-size:var(--font-size-supporting)}.project-offset{margin-left:0}.service-list>a{padding-block:24px}.service-list p,.precision-steps article p,.precision-grid>div>p:not(.eyebrow),.process-grid p,.insight-card p{font-size:var(--font-size-supporting)}.filter-bar{gap:var(--dci-space-2);padding-bottom:var(--dci-space-8)}.filter-bar button{min-height:48px;padding:11px 14px;font-size:var(--font-size-label)}.mobile-contact{padding:8px 12px max(8px, env(safe-area-inset-bottom));gap:8px;border-top-color:var(--color-control-border)}.mobile-contact>a{min-height:48px;font-size:var(--font-size-caption);border-color:var(--control-border);gap:6px}.mobile-contact>a:last-child{border-color:var(--color-accent)}.site-footer{padding-bottom:calc(108px + env(safe-area-inset-bottom))}.brief-form[data-dci-lead-form]{padding:24px 20px}.brief-form[data-dci-lead-form] .form-top{gap:16px;font-size:11px}.brief-form[data-dci-lead-form] .choice-row span{padding:11px 12px}.brief-form[data-dci-lead-form] .form-row{gap:var(--dci-space-6)}.legacy-content .service-detail p,.legacy-article .service-detail p{font-size:var(--font-size-body)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}img[data-dci-quality="1"]{max-width:min(100%, var(--dci-native-width));max-height:var(--dci-native-height);margin-inline:auto}.dci-image-context{position:relative}.dci-image-label{position:absolute;z-index:1;--dci-label-inset:12px;top:calc(var(--dci-image-top, 0px) + var(--dci-label-inset));left:calc(var(--dci-image-left, 0px) + var(--dci-label-inset));display:inline-block!important;width:auto;max-width:calc(100% - 24px);padding:6px 10px!important;margin:0;color:#171b18;background:rgb(243 240 232 / .96);border:1px solid rgb(23 27 24 / .16);font-size:10px!important;font-weight:500;line-height:1.5;letter-spacing:.01em;pointer-events:none}.image-dialog img[data-dci-quality="1"]{max-width:min(100%, var(--dci-native-width));max-height:min(76dvh, var(--dci-native-height))}@media(max-width:560px){.dci-image-label{--dci-label-inset:9px;padding:5px 8px!important;font-size:9px!important}.image-dialog img[data-dci-quality="1"]{max-height:min(72dvh, var(--dci-native-height))}}.work-section .project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 30px}.work-section .project-card{grid-column:auto;grid-row:auto;padding-top:0;margin:0;min-width:0}.work-section .project-card>img{width:100%;aspect-ratio:1.23;object-fit:cover;object-position:50% 48%}.work-section .project-card h3{font-size:clamp(25px, 2vw, 34px)}.work-section .editorial-note{margin-top:38px}@media (min-width:561px) and (max-width:800px){.work-section .project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.work-section .project-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:40px}.work-section .project-card>img{aspect-ratio:1.23}}:root{--dci-icon-blueprint:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%224%22%20y%3D%223%22%20width%3D%2216%22%20height%3D%2218%22%20rx%3D%221%22%2F%3E%3Cpath%20d%3D%22M8%207h8M8%2011h3v6h5v-3M15%207v4h5%22%2F%3E%3C%2Fsvg%3E);--dci-icon-ruler:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m4%2017%2013-13%204%204L8%2021zM11%2010l3%203M15%206l3%203M7%2014l3%203%22%2F%3E%3Cpath%20d%3D%22m3%205%202%202%204-4%22%2F%3E%3C%2Fsvg%3E);--dci-icon-building:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%2021V5l8-3%208%203v16M2%2021h20M9%2021v-5h6v5M8%207h1M15%207h1M8%2011h1M15%2011h1%22%2F%3E%3C%2Fsvg%3E);--dci-icon-shield:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m12%202%208%203v6c0%205-4%208-8%2011-4-3-8-6-8-11V5z%22%2F%3E%3Cpath%20d%3D%22m8%2011%203%203%205-6%22%2F%3E%3C%2Fsvg%3E);--dci-icon-clipboard:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M8%204H5v17h14V4h-3M9%202h6v4H9zM8%2010h8M8%2014h8M8%2018h5%22%2F%3E%3C%2Fsvg%3E);--dci-icon-chevron:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m6%209%206%206%206-6%22%2F%3E%3C%2Fsvg%3E)}.service-list>a .index,.precision-steps article>span,.process-grid article>span{display:grid;justify-items:start;gap:var(--dci-space-2)}.service-list>a .index::before,.precision-steps article>span::before,.process-grid article>span::before{content:"";display:block;width:28px;height:28px;background-color:currentColor;-webkit-mask-image:var(--dci-item-icon,var(--dci-icon-clipboard));mask-image:var(--dci-item-icon,var(--dci-icon-clipboard));-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;transition:transform var(--dci-duration-normal) ease,background-color var(--dci-duration-fast) ease}.service-list>a .index::before{color:var(--color-accent)}.service-list>a:nth-child(1){--dci-item-icon:var(--dci-icon-blueprint)}.service-list>a:nth-child(2){--dci-item-icon:var(--dci-icon-ruler)}.service-list>a:nth-child(3){--dci-item-icon:var(--dci-icon-building)}.precision-steps article:nth-child(1),.process-grid article:nth-child(1){--dci-item-icon:var(--dci-icon-blueprint)}.precision-steps article:nth-child(2),.process-grid article:nth-child(2){--dci-item-icon:var(--dci-icon-ruler)}.precision-steps article:nth-child(3),.process-grid article:nth-child(3){--dci-item-icon:var(--dci-icon-shield)}.process-grid article:nth-child(4){--dci-item-icon:var(--dci-icon-building)}.text-link>span[aria-hidden="true"],.nav-cta span,.service-list .arrow,.project-meta>span:last-child,.mobile-contact>a>svg{display:inline-block;transition:transform var(--dci-duration-normal) ease}.faq details>summary{position:relative;list-style:none;padding-right:36px}.faq details>summary::-webkit-details-marker{display:none}.faq details>summary::after{content:"";position:absolute;right:0;top:.2em;width:20px;height:20px;background-color:currentColor;-webkit-mask-image:var(--dci-icon-chevron);mask-image:var(--dci-icon-chevron);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;transition:transform var(--dci-duration-fast) ease}.faq details[open]>summary::after{transform:rotate(180deg)}@media (hover:hover) and (pointer:fine){.service-list>a:hover .index::before{transform:translateY(-2px) rotate(-4deg)}.text-link:hover>span[aria-hidden="true"],.nav-cta a:hover span,.service-list>a:hover .arrow,.project-card:hover .project-meta>span:last-child{transform:translate(2px,-2px)}.mobile-contact>a:hover>svg{transform:translateY(-2px)}}.service-list>a:focus-visible .index::before{transform:translateY(-2px)}.text-link:focus-visible>span[aria-hidden="true"],.nav-cta a:focus-visible span,.service-list>a:focus-visible .arrow,.project-card:focus-visible .project-meta>span:last-child{transform:translate(2px,-2px)}.mobile-contact>a:focus-visible>svg{transform:translateY(-2px)}.mobile-contact>a:active>svg,.service-list>a:active .index::before{transform:scale(.92)}@media (prefers-reduced-motion:reduce){.service-list>a .index::before,.precision-steps article>span::before,.process-grid article>span::before,.text-link>span[aria-hidden="true"],.nav-cta span,.service-list .arrow,.project-meta>span:last-child,.mobile-contact>a>svg{transition:none;animation:none;transform:none!important}.faq details>summary::after{transition:none}}@media (forced-colors:active){.faq details>summary{list-style:revert}.faq details>summary::-webkit-details-marker{display:revert}.faq details>summary::after,.service-list>a .index::before,.precision-steps article>span::before,.process-grid article>span::before{content:none}}@supports not ((mask-image:none) or (-webkit-mask-image:none)){.faq details>summary{list-style:revert}.faq details>summary::-webkit-details-marker{display:revert}.faq details>summary::after,.service-list>a .index::before,.precision-steps article>span::before,.process-grid article>span::before{content:none}}@media (max-width:800px){.precision-steps article{padding-left:calc(28px + var(--dci-space-4))}}.legacy-cover img[data-dci-quality="1"]{width:100%;height:auto;aspect-ratio:auto;object-fit:contain;max-width:min(100%, var(--dci-native-width), calc(760px * var(--dci-native-ratio)));max-height:min(760px, var(--dci-native-height));margin-inline:auto}.gallery-item>img[data-dci-panorama="1"]{height:auto;aspect-ratio:auto;object-fit:contain}@media (max-width:620px){html[lang^="vi"] body.home #main-content .hero{padding-top:24px}html[lang^="vi"] body.home #main-content .hero-top{gap:16px;padding-bottom:20px}html[lang^="vi"] body.home #main-content .hero-intro p{margin-block:0}html[lang^="vi"] body.home #main-content .hero-actions{margin-top:16px;gap:12px}}