@font-face{font-family:Recursive Variable;font-style:normal;font-display:swap;font-weight:300 1000;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Recursive Variable;font-style:normal;font-display:swap;font-weight:300 1000;src:url(/_astro/recursive-vietnamese-wght-normal.-M0BYFYD.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:Recursive Variable;font-style:normal;font-display:swap;font-weight:300 1000;src:url(/_astro/recursive-latin-ext-wght-normal.v5EFsugz.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:Recursive Variable;font-style:normal;font-display:swap;font-weight:300 1000;src:url(/_astro/recursive-latin-wght-normal.DXH_iCWo.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{--ink: #111;--muted: #777;--line: #e4e4e4;--bg: #fff;--max: 1200px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);transition:background-color .6s ease;color:var(--ink);font-family:Recursive Variable,-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif;font-variation-settings:"CASL" 0,"MONO" 0;line-height:1.55;font-size:1rem}body.tinted{background:color-mix(in oklab,var(--tint, var(--bg)) 18%,var(--bg))}a{color:inherit;text-decoration:none;border-bottom:1px solid var(--line)}a:hover{border-bottom-color:var(--ink)}header nav{display:flex;justify-content:space-between;align-items:baseline;max-width:var(--max);margin:0 auto;padding:1.5rem 1.25rem}.wordmark{font-weight:600;letter-spacing:.01em;border-bottom:none}.nav-links a{margin-left:1.25rem;border-bottom:none;color:var(--muted)}.nav-links a:hover{color:var(--ink)}main{max-width:var(--max);margin:0 auto;padding:0 1.25rem 4rem}footer{max-width:var(--max);margin:0 auto;padding:2rem 1.25rem;color:var(--muted);font-size:.85rem}.filter-bar{display:flex;flex-wrap:nowrap;gap:.3rem .7rem;margin:.5rem 0 2rem;font-size:.8rem;white-space:nowrap;overflow-x:auto;scrollbar-width:none}.filter-bar::-webkit-scrollbar{display:none}.filter-bar button{all:unset;cursor:pointer;color:var(--muted);padding:.1rem .2rem}.filter-bar button:hover{color:var(--ink)}.filter-bar button[aria-pressed=true]{color:var(--ink);border-bottom:2px solid var(--ink)}.project-grid{--u: clamp(150px, 24vw, 300px);display:flex;flex-wrap:wrap;gap:2.5rem 1.5rem;align-items:flex-end;list-style:none;margin:0;padding:0}.project-card{flex:var(--s, 1.22) 0 calc(var(--u) * var(--s, 1.22));max-width:calc(var(--u) * var(--s, 1.22) * 1.33)}.project-card a{border-bottom:none;display:block}.project-card figure{margin:0}.project-card img{width:100%;aspect-ratio:var(--ar, 1.5);object-fit:cover;display:block;background:var(--line)}.project-card figcaption{margin-top:.6rem;min-height:4rem;text-align:center}.project-card h3{margin:0;font-size:1rem;font-weight:450;line-height:1.3;transition:font-weight .28s ease;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.project-card a:hover h3{font-weight:700}.project-card .meta{color:var(--muted);font-size:.82rem;margin-top:.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:0;transition:opacity .28s ease}.project-card a:hover .meta{opacity:1}.project h1{font-size:clamp(1.6rem,4vw,2.4rem);line-height:1.15;margin:1rem 0 .25rem;max-width:60rem}.project .meta{color:var(--muted);font-size:.85rem;margin-bottom:2rem}.project .brief{font-size:1.15rem;max-width:46rem}.project .extended{max-width:46rem;color:#333}.project .extended h2{font-size:1.05rem;font-weight:630;margin:2.2rem 0 .5rem}.project .gallery{display:grid;gap:1rem;margin:2.5rem 0}.project .gallery img{width:100%;height:auto;display:block;background:var(--line)}.project video{width:100%;max-width:60rem;display:block;margin:1rem 0;background:#000}.back-link{color:var(--muted);font-size:.85rem;border-bottom:none}.bio h1{font-size:1.6rem;margin-bottom:.2rem}.bio .intro{color:var(--muted);margin:0 0 1.5rem}.bio .short-bio{max-width:46rem;margin-bottom:3rem}.bio .short-bio p{margin:0 0 1rem}.bio section{margin-bottom:2.5rem;max-width:52rem}.bio h2{font-size:1rem;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--line);padding-bottom:.4rem}.bio-entry{margin-bottom:1rem}.bio-entry .title{font-weight:600}.bio-entry .detail,.bio-entry .dates{color:var(--muted);font-size:.9rem}.bio-entry .detail p{margin:.1rem 0}.contact form{max-width:32rem;display:grid;gap:1rem}.contact label{display:grid;gap:.3rem;font-size:.9rem;color:var(--muted)}.contact input,.contact select,.contact textarea{font:inherit;padding:.55rem .6rem;border:1px solid var(--line);border-radius:0;background:var(--bg);color:var(--ink)}.contact button{font:inherit;padding:.6rem 1.4rem;border:1px solid var(--ink);background:var(--ink);color:var(--bg);cursor:pointer;justify-self:start}
