@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(../media/archivo-vietnamese-wdth-normal.38-z0iikg-fbe.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(../media/archivo-latin-ext-wdth-normal.27soo5q86xy9f.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(../media/archivo-latin-wdth-normal.1h4hl0m83hjjz.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{--bg:#fff;--surface:#f6f6f4;--surface-2:#eeeeeb;--edge:#0000001a;--edge-strong:#00000038;--text:#141414;--body:#3a3a3a;--mute:#66666a;--orange:#ff6a1a;--orange-text:#d4500a;--on-orange:#141414;--court:#1c1c1c;--glass:#ffffffc7;--lift:0 24px 50px #0000001f;--glow:#ff6a1a33;--font:"Archivo Variable", "Archivo", system-ui, sans-serif;--wrap:76rem;--gutter:clamp(1.25rem, 4vw, 2.5rem);--r-lg:28px;--r-md:18px;--r-sm:10px;--ease:cubic-bezier(.2, .7, .2, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--bg:#121212;--surface:#1b1b1b;--surface-2:#252525;--edge:#ffffff1a;--edge-strong:#ffffff38;--text:#f3f3f1;--body:#cfcfcc;--mute:#a3a3a0;--orange-text:#ff7d38;--court:#ececea;--glass:#1b1b1bc7;--lift:0 24px 50px #00000080;--glow:#ff6a1a42;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;background:var(--bg)}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:1.0625rem;font-stretch:100%;line-height:1.6;transition:background-color .25s,color .25s}img,svg{max-width:100%;display:block}a{color:inherit}ul,ol{margin:0;padding:0;list-style:none}p{margin:0 0 1em}p:last-child{margin-bottom:0}::selection{background:var(--orange);color:var(--on-orange)}h1,h2,h3{letter-spacing:-.015em;text-wrap:balance;margin:0;font-weight:800;font-stretch:66%;line-height:.98}h1{font-size:clamp(3rem,8.2vw,6.75rem)}h2{font-size:clamp(2.1rem,4.6vw,3.75rem)}h3{font-size:1.6rem;line-height:1.1}:focus-visible{outline:2px solid var(--orange);outline-offset:3px;border-radius:6px}.wrap{width:100%;max-width:var(--wrap);padding-inline:var(--gutter);margin-inline:auto}.skip{background:var(--orange);color:var(--on-orange);z-index:30;border-radius:0 0 var(--r-sm) 0;padding:.6rem 1rem;position:absolute;top:0;left:-999px}.skip:focus{left:0}.site-header{z-index:20;padding:.75rem var(--gutter) 0;pointer-events:none;position:sticky;top:0}.header-pill{pointer-events:auto;max-width:calc(var(--wrap) - 2 * var(--gutter));background:var(--glass);-webkit-backdrop-filter:blur(18px)saturate(1.6);backdrop-filter:blur(18px)saturate(1.6);border:1px solid var(--edge);border-radius:999px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.35rem 1.5rem;margin-inline:auto;padding:.55rem .6rem .55rem 1.1rem;display:flex;box-shadow:0 10px 34px #0000001a}.logo{letter-spacing:-.01em;align-items:center;gap:.55rem;font-size:1.35rem;font-weight:800;font-stretch:66%;text-decoration:none;display:inline-flex}.logo-mark{border:2px solid var(--orange);background:linear-gradient(var(--orange), var(--orange)) center / 100% 2px no-repeat;border-radius:50%;width:1.2rem;height:1.2rem}.nav{flex-wrap:wrap;align-items:center;gap:.15rem;display:flex}.nav a{color:var(--mute);border-radius:999px;padding:.45rem .85rem;font-size:.98rem;font-weight:500;text-decoration:none;transition:color .2s,background-color .2s;display:block}.nav a:hover,.nav a[aria-current=page]{color:var(--text);background:var(--surface-2)}.nav .nav-cta{background:var(--orange);color:var(--on-orange);margin-left:.35rem;font-weight:700}.nav .nav-cta:hover{color:var(--on-orange);background:#ff8f4d}.theme-toggle{border:1px solid var(--edge);width:2.4rem;height:2.4rem;color:var(--text);cursor:pointer;background:0 0;border-radius:50%;place-items:center;margin-left:.25rem;transition:background-color .2s,border-color .2s;display:grid}.theme-toggle:hover{background:var(--surface-2);border-color:var(--edge-strong)}.theme-toggle svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:1.1rem;height:1.1rem}.icon-sun{display:none}[data-theme=dark] .icon-sun{display:block}[data-theme=dark] .icon-moon{display:none}.btn{font:inherit;cursor:pointer;transition:transform .25s var(--ease), background-color .2s, border-color .2s, box-shadow .25s;border:1px solid #0000;border-radius:999px;align-items:center;padding:.9rem 1.6rem;font-weight:700;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--orange);color:var(--on-orange);box-shadow:0 8px 26px #ff6a1a4d}.btn-primary:hover{background:#ff8f4d;transform:translateY(-2px);box-shadow:0 10px 34px #ff6a1a6b}.btn-ghost{border-color:var(--edge-strong);color:var(--text)}.btn-ghost:hover{border-color:var(--text)}.btn[disabled]{opacity:.6;cursor:progress}.actions{flex-wrap:wrap;gap:.75rem;margin-top:2.25rem;display:flex}.more{color:var(--orange-text);border-bottom:1px solid #ff6a1a66;padding-bottom:2px;font-weight:600;text-decoration:none;transition:border-color .2s}.more:hover{border-bottom-color:var(--orange)}.hero{isolation:isolate;margin-top:-4.5rem;padding-top:4.5rem;position:relative;overflow:hidden}.hero-glow{z-index:-1;background:radial-gradient(52rem 34rem at 82% 38%, var(--glow), transparent 64%), radial-gradient(30rem 22rem at 100% 100%, var(--glow), transparent 65%);position:absolute;inset:0}.hero-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:center;gap:1rem;min-height:min(46rem,88vh);display:grid}.hero-copy{padding-block:clamp(3.5rem,9vw,7rem)}.hero h1{max-width:13.5ch;font-size:clamp(2.9rem,7vw,5.75rem)}.lede{max-width:34rem;color:var(--mute);margin-top:1.5rem;font-size:clamp(1.125rem,1.5vw,1.3rem);line-height:1.55}.phones{aspect-ratio:1/1.12;place-self:center;width:min(100%,30rem);position:relative}.phone{aspect-ratio:720/1565;width:50%;box-shadow:0 0 0 1px #ffffff24 inset, 0 30px 60px #00000047, 0 0 60px var(--glow);background:#0b0b0b;border-radius:13%/6%;padding:1.6%;position:absolute}.phone img{object-fit:cover;border-radius:11%/5.1%;width:100%;height:100%}.phone-front{animation:phone-in .9s var(--ease) .15s both;bottom:0;right:6%;transform:rotate(5deg)}.phone-back{animation:phone-in .9s var(--ease) both;top:0;left:6%;transform:rotate(-7deg)}@keyframes phone-in{0%{opacity:0;translate:0 40px}to{opacity:1;translate:0}}.fields{stroke:var(--court);stroke-width:3px;stroke-linecap:round;overflow:visible}.fields .accent{stroke:var(--orange);stroke-width:5px}.ticker{border-block:1px solid var(--edge);overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000);mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000)}.ticker-track{width:max-content;animation:70s linear infinite ticker;display:flex}.ticker-track span{color:var(--mute);white-space:nowrap;align-items:center;gap:3.2rem;padding:.95rem 1.6rem;font-size:1.05rem;font-weight:700;font-stretch:66%;display:flex}.ticker-track span:after{content:"";background:var(--orange);border-radius:50%;width:6px;height:6px;margin-right:-1.6rem}@keyframes ticker{to{transform:translate(-50%)}}.section{padding-block:clamp(3.5rem,8vw,6.5rem)}.section-tight{padding-top:clamp(1rem,3vw,2rem)}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem 2rem;margin-bottom:2.25rem;display:flex}.panel{background:var(--surface);border:1px solid var(--edge);border-radius:var(--r-md)}.stats{border:1px solid var(--edge);border-radius:var(--r-lg);background:var(--surface);grid-template-columns:repeat(4,minmax(0,1fr));margin:0;display:grid;overflow:hidden}.stats>div{border-left:1px solid var(--edge);flex-direction:column-reverse;justify-content:flex-end;gap:.5rem;padding:clamp(1.25rem,3vw,2.25rem);display:flex}.stats>div:first-child{border-left:0}.stats dd{letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--orange);margin:0;font-size:clamp(2.6rem,5.5vw,4.5rem);font-weight:800;font-stretch:66%;line-height:.9}.stats dt{color:var(--mute);max-width:16rem;font-size:.95rem;line-height:1.4}.services{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;display:grid}.services .panel{transition:border-color .25s, transform .35s var(--ease), box-shadow .35s;flex-direction:column;gap:.6rem;padding:1.5rem;display:flex}.services .panel:hover{border-color:var(--orange);box-shadow:var(--lift);transform:translateY(-4px)}.services svg{fill:none;width:2.75rem;height:2.75rem;stroke:var(--orange-text);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;background:#ff6a1a24;border-radius:12px;margin-bottom:.75rem;padding:.6rem}.services p{color:var(--mute);font-size:1rem}.tag{background:var(--surface-2);color:var(--body);border-radius:999px;align-items:center;padding:.35rem .6rem;font-size:.78rem;font-weight:600;line-height:1;display:inline-flex}.tag-app{color:var(--orange-text);background:#ff6a1a29}.shot{aspect-ratio:16/10;border-radius:var(--r-sm);background:var(--surface-2);isolation:isolate;place-items:center;display:grid;position:relative;overflow:hidden}.shot img{transition:transform .5s var(--ease)}.shot-fill img{object-fit:cover;object-position:top left;width:100%;height:100%}.shot-fit img{border-radius:6px;width:auto;max-width:86%;height:auto;max-height:74%}.shot-drawn{flex-direction:column;justify-content:flex-end;align-items:flex-start;padding:1.1rem;display:flex}.shot-title{font-size:clamp(1.25rem,2.2vw,1.8rem);font-weight:800;font-stretch:66%;line-height:1}.shot-kind{color:var(--mute);margin-top:.3rem;font-size:.85rem}.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;display:grid}.bento{grid-template-columns:repeat(6,minmax(0,1fr));gap:1.25rem;display:grid}.bento>li{grid-column:span 3}.bento>li:first-child{grid-column:span 6}.grid>li,.bento>li{display:flex}.card{background:var(--bg);border:1px solid var(--edge);border-radius:var(--r-md);transition:transform .4s var(--ease), border-color .25s, box-shadow .4s;flex-direction:column;flex:1;padding:.6rem;text-decoration:none;display:flex}[data-theme=dark] .card{background:var(--surface)}.card:hover{border-color:var(--edge-strong);box-shadow:var(--lift);transform:translateY(-6px)}.card:hover .shot img{transform:scale(1.03)}.card-body{flex-direction:column;flex:1;gap:.5rem;padding:1.1rem .65rem .75rem;display:flex}.card-meta{align-items:center;gap:.6rem;display:flex}.card-year{color:var(--mute);font-variant-numeric:tabular-nums;font-size:.85rem}.card-title{letter-spacing:-.01em;font-size:1.7rem;font-weight:800;font-stretch:66%;line-height:1.02}.card-summary{color:var(--mute);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.98rem;line-height:1.5;display:-webkit-box;overflow:hidden}.card .price{margin-top:auto;padding-top:.5rem}.bento>li:first-child .card{flex-direction:row;align-items:stretch}.bento>li:first-child .shot{aspect-ratio:16/9;flex:1.5}.bento>li:first-child .card-body{flex:1;justify-content:center;padding:1.5rem clamp(1rem,3vw,2.5rem)}.bento>li:first-child .card-title{font-size:clamp(2rem,3.6vw,3.25rem)}.bento>li:first-child .card-summary{-webkit-line-clamp:5;font-size:1.05rem}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.grid>li,.bento>li,.services>li{animation:linear both rise;animation-timeline:view();animation-range:entry entry 55%}}}@keyframes rise{0%{opacity:0;transform:translateY(36px)scale(.98)}to{opacity:1;transform:none}}.filters{flex-wrap:wrap;gap:.5rem;margin-bottom:1.75rem;display:flex}.filter{font:inherit;color:var(--body);background:var(--bg);border:1px solid var(--edge);cursor:pointer;border-radius:999px;align-items:center;gap:.55rem;padding:.5rem .6rem .5rem 1rem;font-size:.95rem;font-weight:600;transition:color .2s,background-color .2s,border-color .2s;display:inline-flex}.filter:hover{color:var(--text);border-color:var(--edge-strong)}.filter[aria-pressed=true]{background:var(--text);color:var(--bg);border-color:var(--text)}.filter-count{font-variant-numeric:tabular-nums;background:var(--surface-2);min-width:1.6rem;color:var(--mute);text-align:center;border-radius:999px;padding:.15rem .4rem;font-size:.78rem}.filter[aria-pressed=true] .filter-count{background:var(--orange);color:var(--on-orange)}.quote{max-width:62rem;margin:0}.quote blockquote{margin:0}.quote-lead{letter-spacing:-.02em;margin-bottom:1.5rem;font-size:clamp(2.2rem,5.6vw,4.5rem);font-weight:800;font-stretch:66%;line-height:1}.quote-rest{color:var(--body);max-width:46rem;font-size:clamp(1.1rem,1.6vw,1.3rem);line-height:1.6}.quote figcaption{align-items:center;gap:.75rem;margin-top:1.5rem;font-weight:600;display:flex}.quote figcaption:before{content:"";background:var(--orange);width:2.5rem;height:2px}.price{font-variant-numeric:tabular-nums;color:var(--orange-text);font-weight:700}.price-large{font-size:3rem;font-weight:800;font-stretch:66%;line-height:1}.closer{isolation:isolate;border-radius:var(--r-lg);color:#141414;background:radial-gradient(90% 140% at 100% 0,#ffab73,#0000 60%),linear-gradient(135deg,#ff6a1a,#e2470a);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.75rem 3rem;padding:clamp(2rem,6vw,4.5rem);display:flex;position:relative;overflow:hidden;box-shadow:0 30px 70px #ff6a1a40}.closer .btn-primary{color:#fff;background:#141414;box-shadow:0 10px 30px #0000004d}.closer .btn-primary:hover{background:#2c2c2c}.closer h2{max-width:18ch}.closer-fields{z-index:-1;stroke:#14141438;width:min(48%,30rem);position:absolute;top:50%;right:-3%;transform:translateY(-50%)rotate(-12deg)}.closer-fields .accent{stroke:#14141473}.closer-next h2{font-size:clamp(1.7rem,3.2vw,2.6rem)}.page-head{background:radial-gradient(46rem 20rem at 88% 0%, var(--glow), transparent 65%);margin-top:-4.5rem;padding-block:calc(4.5rem + clamp(3rem,7vw,5.5rem)) clamp(2rem,5vw,3.5rem);position:relative}.page-head+.section{padding-top:clamp(1rem,3vw,2rem)}.page-head-tall{padding-bottom:clamp(5rem,14vw,9rem)}.crumb{color:var(--mute);flex-wrap:wrap;align-items:center;gap:.55rem;margin-bottom:1.1rem;font-weight:500;display:flex}.crumb a{color:var(--text);border-bottom:1px solid var(--edge-strong);text-decoration:none}.crumb-year{font-variant-numeric:tabular-nums}.after-list{color:var(--mute);margin-top:2.5rem}.project{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start;gap:2rem 4rem;display:grid}.project-shot{aspect-ratio:auto;border-radius:var(--r-md);border:1px solid var(--edge);position:sticky;top:6rem}.project-shot.shot-fill img{object-fit:contain;height:auto}.project-shot.shot-fit{padding:clamp(1.5rem,5vw,3.5rem)}.project-shot.shot-fit img{max-width:100%;max-height:30rem}.project-shot.shot-drawn{aspect-ratio:16/10}.prose{max-width:38rem;color:var(--body);font-size:1.125rem;line-height:1.7}.prose strong{color:var(--text)}.prose img{border-radius:var(--r-sm);border:1px solid var(--edge);height:auto;margin-block:1.5rem}.prose h2,.prose h3{color:var(--text);margin:2rem 0 .75rem;font-size:1.6rem}.prose ul{margin-bottom:1em;padding-left:1.25rem;list-style:outside}.prose a:not(.btn):not(.more){color:var(--orange-text);text-underline-offset:3px}.prose .btn{margin-top:.75rem}.about-grid{grid-template-columns:minmax(0,20rem) minmax(0,1fr);align-items:start;gap:2rem 4rem;display:grid}.about-photo{border-radius:var(--r-md);border:1px solid var(--edge);width:100%}.split{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);align-items:start;gap:2rem 4rem;display:grid}.timeline{border-left:1px solid var(--edge-strong)}.timeline li{color:var(--body);grid-template-columns:7.5rem minmax(0,1fr);gap:1rem;padding:0 0 2rem 2rem;display:grid;position:relative}.timeline li:last-child{padding-bottom:0}.timeline li:before{content:"";background:var(--orange);border-radius:50%;width:11px;height:11px;position:absolute;top:.5em;left:-6px;box-shadow:0 0 0 5px #ff6a1a2e}.timeline-year{color:var(--text);font-size:1.5rem;font-weight:800;font-stretch:66%;line-height:1.2}.contact-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:start;gap:2rem;display:grid}.form{background:var(--surface);border:1px solid var(--edge);border-radius:var(--r-lg);gap:1.25rem;padding:clamp(1.25rem,4vw,2.5rem);display:grid}.form label{gap:.45rem;font-size:.98rem;font-weight:600;display:grid}.form input,.form select,.form textarea{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--edge-strong);border-radius:var(--r-sm);width:100%;padding:.8rem .9rem;font-weight:400;transition:border-color .2s,box-shadow .2s}.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--orange);outline:none;box-shadow:0 0 0 4px #ff6a1a38}.form textarea{resize:vertical}.form .btn{justify-self:start}.form .hp{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.form-error{color:#c0392b;margin:0;font-weight:600}[data-theme=dark] .form-error{color:#ff9a8f}.form-done{background:var(--surface);border:1px solid var(--edge);border-radius:var(--r-lg);padding:clamp(1.5rem,4vw,2.5rem)}.form-done h2{margin-bottom:.75rem}.form-done .btn{margin-top:1.25rem}.contact-aside{background:var(--surface);border:1px solid var(--edge);border-radius:var(--r-lg);color:var(--mute);padding:1.75rem}.contact-aside h2{color:var(--text);margin-bottom:.75rem;font-size:1.75rem}.contact-aside a{color:var(--orange-text);font-size:1.35rem;font-weight:700;text-decoration:none}.site-footer{border-top:1px solid var(--edge);color:var(--mute);padding-block:3.5rem 2rem;font-size:1rem}.site-footer a{text-decoration:none;transition:color .2s}.site-footer a:hover{color:var(--text)}.footer-grid{grid-template-columns:1.4fr 1fr 1fr;gap:2rem;display:grid}.footer-name{color:var(--text);margin-bottom:.25rem;font-size:1.6rem;font-weight:800;font-stretch:66%}.footer-links{grid-template-columns:repeat(2,max-content);gap:.4rem 2.5rem;display:grid}.site-footer address{align-content:start;gap:.4rem;font-style:normal;display:grid}.footer-legal{border-top:1px solid var(--edge);flex-wrap:wrap;justify-content:space-between;gap:.25rem 2rem;margin-top:2.5rem;padding-top:1.25rem;font-size:.88rem;display:flex}.footer-legal p{margin:0}@media (max-width:60rem){.hero-grid{grid-template-columns:minmax(0,1fr);min-height:0}.hero-copy{padding-bottom:0}.phones{width:min(100%,24rem);margin-block:2.5rem}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stats>div:nth-child(odd){border-left:0}.stats>div:nth-child(n+3){border-top:1px solid var(--edge)}.services,.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.split,.project,.about-grid,.contact-grid{grid-template-columns:minmax(0,1fr)}.project-shot{position:relative;top:0}.bento>li:first-child .card{flex-direction:column}.bento>li:first-child .shot{flex:none}.footer-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width:40rem){.header-pill{border-radius:22px;padding:.6rem .7rem}.logo{padding-left:.35rem}.nav a{padding:.4rem .6rem;font-size:.92rem}.hero,.page-head{margin-top:-6.5rem}.hero{padding-top:6.5rem}.page-head{padding-top:9rem}.grid,.services{grid-template-columns:minmax(0,1fr)}.bento>li{grid-column:span 6}.timeline li{grid-template-columns:minmax(0,1fr);gap:.15rem}.closer-fields{opacity:.6;width:80%}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.phone,.ticker-track{animation:none}body,.btn,.card,.services .panel,.shot img{transition:none}}
