@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/_astro/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(/_astro/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(/_astro/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}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-vietnamese-opsz-normal.BjhtXyW2.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:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-ext-opsz-normal.BQn1nviT.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:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-opsz-normal.s-izfB6B.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:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-vietnamese-opsz-italic.DTr-ymY4.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:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-ext-opsz-italic.CSPGnFdO.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:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-opsz-italic.kJKFiXvB.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{--paper:#fff;--paper-2:#f1f2f0;--ink:#1e2124;--ink-2:#5b6168;--rule:#d6d9d4;--mark:#aab0b6;--accent:#2b4c8c;--accent-soft:#2b4c8c1f;--sans:"Archivo Variable", "Archivo", ui-sans-serif, system-ui, sans-serif;--serif:"Newsreader Variable", "Newsreader", Georgia, "Times New Roman", serif;--t-2:.64rem;--t-1:.8rem;--t0:1rem;--t1:1.25rem;--t2:1.563rem;--t3:1.953rem;--t4:2.441rem;--t5:3.052rem;--measure:720px;--wide:60rem;--image-w:820px;--page:76rem;--gutter:clamp(1rem, 4.5vw, 3.5rem);color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#15171a;--paper-2:#1d2024;--ink:#e6e7e3;--ink-2:#9aa0a6;--rule:#2e3237;--mark:#5d646c;--accent:#9db5e8;--accent-soft:#9db5e826;color-scheme:dark}}:root[data-theme=dark]{--paper:#15171a;--paper-2:#1d2024;--ink:#e6e7e3;--ink-2:#9aa0a6;--rule:#2e3237;--mark:#5d646c;--accent:#9db5e8;--accent-soft:#9db5e826;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:1.5rem;font-size:112.5%}body{background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:var(--t0);font-optical-sizing:auto;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;line-height:1.6}img{max-width:100%;height:auto;display:block}a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}::selection{background:var(--accent-soft)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip{position:absolute;top:0;left:-999px}.skip:focus{left:var(--gutter);z-index:10;background:var(--paper);padding:.4rem .8rem;top:.5rem}.site-header,.site-footer,main{padding-inline:var(--gutter);max-width:calc(var(--page) + 2 * var(--gutter));margin-inline:auto}.site-header{border-bottom:1px solid var(--rule);font-family:var(--sans);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem 1.5rem;padding-block:.85rem;display:flex}.site-brand{flex-direction:column;gap:2px;display:flex}.site-name{letter-spacing:-.01em;color:var(--ink);margin:0;font-size:1.0556rem;font-weight:600;font-stretch:100%;line-height:1.2;text-decoration:none}.site-tagline{color:var(--ink-2);margin:0;font-size:.6667rem;font-weight:500;line-height:1.3}.site-header ul,.site-footer ul{gap:1.4rem;margin:0;padding:0;list-style:none;display:flex}.site-header nav a,.site-footer nav a{font-size:var(--t-1);color:var(--ink-2);font-weight:500;text-decoration:none}.site-header nav a:hover,.site-header nav a[aria-current=page],.site-footer nav a:hover,.site-footer nav a[aria-current=page]{color:var(--ink)}.site-header nav a[aria-current=page],.site-footer nav a[aria-current=page]{text-decoration:underline;text-decoration-color:var(--accent)}.site-footer{border-top:1px solid var(--rule);font-family:var(--sans);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem 1.5rem;margin-top:6rem;margin-bottom:1.5rem;padding-block:.85rem;display:flex}.grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:19px 11px;margin:1.75rem 0 0;padding:0;list-style:none;display:grid}@media (width<=72rem){.grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=56rem){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=40rem){.grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:1.25rem}}.tile{color:inherit;text-decoration:none;display:block}.tile-img{aspect-ratio:1;background:var(--paper-2);display:block;overflow:hidden}.tile-img picture,.tile-img img{width:100%;height:100%}.tile-img img{object-position:var(--pos,50% 50%);transition:opacity .15s}.pic-cover{object-fit:cover}.tile-title{font-family:var(--sans);letter-spacing:-.005em;text-wrap:pretty;margin-top:4px;padding-inline:3px;font-size:.8333rem;font-weight:600;line-height:1.2;display:block}.tile:hover .tile-img img{opacity:.88}.tile:hover .tile-title,.tile:focus-visible .tile-title{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:2px}@media (width<=40rem){.tile-title{font-size:.75rem}}.project-head{max-width:var(--image-w);margin-inline:auto;padding-block:clamp(1.5rem,5vw,3.5rem) 2.5rem}.project-head.head-wide{max-width:var(--page)}.project-title{max-width:32ch;font-family:var(--sans);letter-spacing:-.015em;text-wrap:balance;margin:0;font-size:1.6667rem;font-weight:600;font-stretch:112%;line-height:1.15}.project-date{font-family:var(--sans);font-size:var(--t-1);color:var(--ink-2);margin:.8rem 0 0;font-weight:500}.blocks>*+*{margin-top:24px}.prose{max-width:var(--measure)}.project .prose{max-width:var(--image-w);margin-inline:auto}.prose>:first-child{margin-top:0}.prose>:last-child{margin-bottom:0}.prose p,.prose ul,.prose ol,.prose blockquote,.prose pre,.prose table{margin:0 0 1em}.prose ul,.prose ol{padding-left:1.3em}.prose li+li{margin-top:.25em}.prose h1,.prose h2,.prose h3,.prose h4{font-family:var(--sans);letter-spacing:-.01em;margin:1.8em 0 .5em;font-weight:600;line-height:1.2}.prose h1,.prose h2{font-size:var(--t2)}.prose h3{font-size:var(--t1)}.prose h4{font-size:var(--t0)}.prose strong{font-weight:650}.prose blockquote{border-left:2px solid var(--rule);color:var(--ink-2);margin-left:0;padding-left:1.1em;font-style:italic}.prose code{background:var(--paper-2);border-radius:3px;padding:.1em .3em;font-size:.85em}.prose pre{background:var(--paper-2);border-radius:4px;padding:1rem;font-size:.8rem;line-height:1.5;overflow-x:auto}.prose pre code{background:0 0;padding:0}.prose hr{border:0;border-top:1px solid var(--rule);margin:2em 0}.prose a{overflow-wrap:anywhere}.figure{max-width:var(--image-w);margin-inline:auto}.figure>.zoom,.figure>picture{width:fit-content;max-width:100%;margin-inline:auto}.figure figcaption,.lb-caption{max-width:var(--measure);font-family:var(--sans);font-size:var(--t-1);color:var(--ink-2);margin-top:.6rem;line-height:1.5}.zoom{cursor:pointer;display:block}.figure .pic{width:auto;max-width:100%;margin-inline:auto}.gallery{max-width:var(--page);margin-inline:auto}.gal{grid-template-columns:repeat(var(--cols), minmax(0, 1fr));gap:8px;display:grid}.gal-item .zoom,.gal-item picture{width:100%;height:100%;display:block}.gal-item img{width:100%;height:auto;aspect-ratio:var(--cell);object-fit:cover;background:var(--paper-2)}@media (width<=56rem){.gal{grid-template-columns:repeat(min(var(--cols), 3), minmax(0, 1fr))}}@media (width<=40rem){.gal{grid-template-columns:repeat(min(var(--cols), 2), minmax(0, 1fr));gap:8px}}.vid-wrap{display:block;position:relative}.figure .vid-wrap{width:fit-content;max-width:100%;margin-inline:auto}.vid{width:auto;max-width:100%;height:auto;display:block}.vid-cover,.vid-cover .vid{width:100%;height:100%}.gal-item .vid{width:100%;height:auto;aspect-ratio:var(--cell);object-fit:cover;background:var(--paper-2)}.vid-toggle{color:#fff;cursor:pointer;opacity:0;background:#0000008c;border:0;border-radius:50%;place-items:center;width:34px;height:34px;padding:0;transition:opacity .15s;display:grid;position:absolute;bottom:8px;right:8px}.vid-toggle:before{content:"";box-sizing:border-box;border-inline:3.5px solid;width:10px;height:12px}.vid-toggle[data-state=paused]:before{border:7px solid #0000;border-inline:0;border-left:11px solid;width:0;height:0;margin-left:3px}.vid-wrap:hover .vid-toggle,.vid-toggle:focus-visible,.vid-toggle[data-state=paused]{opacity:1}@media (hover:none){.vid-toggle{opacity:.85}}.embed{max-width:var(--image-w);margin-inline:auto}.embed iframe{aspect-ratio:16/9;background:var(--paper-2);border:0;width:100%}.embed-audio iframe{aspect-ratio:auto;height:166px}.pic-missing{border:1px dashed var(--ink-2);font-family:var(--sans);font-size:var(--t-1);color:var(--ink-2);padding:1rem}.pager{border-top:1px solid var(--rule);max-width:var(--image-w);margin-top:5rem;grid-template-columns:1fr 1fr;gap:1.5rem;margin-inline:auto;padding-top:1.5rem;display:grid}.pager-link{color:inherit;flex-direction:column;gap:.2rem;text-decoration:none;display:flex}.pager-later{text-align:right}.pager-dir{font-family:var(--sans);font-size:var(--t-1);color:var(--ink-2)}.pager-title{font-family:var(--sans);font-size:var(--t1);text-wrap:balance;font-weight:600;line-height:1.25}.pager-link:hover .pager-title{text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px}@media (width<=40rem){.pager{grid-template-columns:1fr}.pager-later{text-align:left}}.contact{max-width:var(--measure);padding-block:clamp(1.5rem,5vw,3.5rem) 0}.contact-text{font-size:var(--t1);margin:1.2rem 0 1.6rem;line-height:1.45}.contact-or{color:var(--ink-2)}.list-plain{padding-left:1.2em}.button{border:1.5px solid var(--accent);background:var(--accent);color:var(--paper);font-family:var(--sans);font-size:var(--t-1);cursor:pointer;border-radius:3px;padding:.65rem 1.2rem;font-weight:600;text-decoration:none;display:inline-block}.button:hover{color:var(--accent);background:0 0}.contact-form{gap:1rem;margin:2.5rem 0;display:grid}.contact-form label{font-family:var(--sans);font-size:var(--t-1);gap:.3rem;font-weight:500;display:grid}.contact-form input,.contact-form textarea{font:inherit;font-family:var(--serif);font-size:var(--t0);border:1px solid var(--rule);background:var(--paper);color:var(--ink);border-radius:3px;padding:.55rem .7rem}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.contact-form .button{justify-self:start}.lb{color:#e6e7e3;background:#121416;border:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;overflow:hidden}.lb[open]{grid-template-rows:minmax(0,1fr) auto;animation:.16s ease-out lb-in;display:grid}.lb::backdrop{background:0 0}.lb-stage{min-height:0;position:relative}.lb-img{object-fit:contain;width:100%;max-width:none;height:100%;position:absolute;inset:0}.lb-caption{color:#c3c7cb;text-align:center;margin:0;padding:.7rem 4.5rem .9rem}.lb-caption[hidden]{display:none}.lb-caption a{color:#9db5e8}.lb-count{font-family:var(--sans);font-size:var(--t-1);color:#c3c7cb;font-variant-numeric:tabular-nums;text-shadow:0 1px 3px #0009;position:fixed;top:1.1rem;left:1.2rem}.lb-btn{color:#fff;cursor:pointer;background:#00000073;border:0;border-radius:50%;place-items:center;width:48px;height:48px;padding:0;transition:background .12s;display:grid;position:fixed}.lb-btn[hidden]{display:none}.lb-btn:hover{background:#000000bf}.lb-btn:focus-visible{outline-offset:2px;outline:2px solid #9db5e8}.lb-btn svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:26px;height:26px}.lb-close{top:.75rem;right:.75rem}.lb-prev,.lb-next{top:50%;transform:translateY(-50%)}.lb-prev{left:.75rem}.lb-next{right:.75rem}@media (width<=40rem){.lb-btn{width:40px;height:40px}.lb-btn svg{width:22px;height:22px}.lb-prev{left:.4rem}.lb-next{right:.4rem}.lb-close{top:.4rem;right:.4rem}.lb-caption{padding-inline:1rem}}@keyframes lb-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@media print{.site-header nav,.site-footer,.tl,.pager{display:none}body{color:#000;background:#fff}}@media (width<=30rem){.site-header ul,.site-footer ul{gap:1rem}}
