@view-transition{navigation:auto}:root{--paper:#fff;--ink:#202020;--muted:#737373;--accent:#202020;--line:#e5e5e5;--sans:"Helvetica Neue", Arial, "PingFang SC", "Microsoft YaHei", sans-serif;--page-gutter:20px;--header-height:40px}*{box-sizing:border-box}html:not([data-language=en]) [data-language-content=en],html[data-language=en] [data-language-content=zh]{display:none!important}html{scroll-padding-top:calc(var(--header-height) + 16px)}body{padding-top:var(--header-height);color:var(--ink);background:var(--paper);font-family:var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:12.5px;line-height:1.6}body:has(dialog[open]){overflow:hidden}::selection{color:#202020;background:#e2e2e2}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:1px solid var(--ink);outline-offset:4px}img,video{max-width:100%;display:block}figure,p,h1,h2,h3{margin:0}h1,h2,h3{font-weight:400}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.shell{width:calc(100% - var(--page-gutter) * 2);margin-inline:auto}.eyebrow{color:var(--muted);font-size:11px;line-height:1.7}.skip-link{z-index:30;background:var(--ink);color:#fff;padding:8px 12px;position:fixed;top:8px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.site-header{top:0;z-index:10;height:var(--header-height);padding-inline:var(--page-gutter);border-bottom:1px solid var(--line);background:#fff;position:fixed;inset-inline:0}.layout-home{--white-paper:linear-gradient(#fff6, #fff6), url(/assets/home/paper-texture.webp);background-image:var(--white-paper);background-blend-mode:normal, luminosity;background-size:auto,1120px 1120px}.layout-home .site-header{background-color:#fff;background-image:var(--white-paper);background-blend-mode:normal, luminosity;background-size:auto,1120px 1120px}.site-header nav{grid-template-columns:32% 32% 1fr auto;align-items:center;height:100%;display:grid}.site-header nav a{width:fit-content;color:var(--muted);align-items:baseline;gap:10px;padding-block:8px;line-height:20px;display:flex}.site-header nav a[aria-current],.site-header nav a:hover{color:var(--ink)}.site-header nav a:hover{text-underline-offset:3px;text-decoration:underline}.header-end{align-items:center;gap:24px;display:flex}.language-switch{appearance:none;color:var(--ink);background:0 0;border:0;padding:8px 0;font-size:11px;line-height:20px}.language-switch:hover{text-underline-offset:3px;text-decoration:underline}.landing{isolation:isolate;touch-action:pan-y pinch-zoom;min-height:calc(100svh - var(--header-height));padding:100px var(--page-gutter) 22px;align-items:flex-end;display:flex;position:relative;overflow:hidden}.landing-bottom{z-index:1;grid-template-columns:32% 1fr;align-items:end;width:100%;display:grid;position:relative}.landing-bottom:before{content:"";z-index:-1;inset:-44px calc(-1 * var(--page-gutter)) -22px;pointer-events:none;background:#f8f8f6 url(/assets/home/paper-texture.webp);position:absolute;mask-image:linear-gradient(#0000,#000 44px)}.layout-home .landing-bottom:before{background-color:#fff;background-image:var(--white-paper);background-blend-mode:normal, luminosity;background-size:auto,1120px 1120px}.landing:has([data-paper-print-ready]) .landing-bottom:before{display:none}.landing:has([data-paper-print-ready][data-motion=active]) .landing-bottom{opacity:0;pointer-events:none}.landing-contact{flex-direction:column;align-items:flex-start;gap:0;display:flex}.landing-contact a{min-height:22px}.landing-contact a:hover{text-underline-offset:3px;text-decoration:underline}.landing-bio{max-width:710px;padding-right:10px}.landing-bio p{text-wrap:pretty}.landing-bio p[lang=zh-CN]{max-width:610px;line-height:1.8}.page-footer{padding:40px var(--page-gutter) 20px;color:var(--muted);font-size:11px}.text-link{text-underline-offset:4px;text-decoration:underline}.not-found{padding-block:80px}.not-found h1{font-size:18px}.not-found p{margin-block:12px 32px}.section-heading{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:32px;display:flex}.section-heading h2{font-family:var(--sans);font-size:29px}.section-heading .eyebrow{margin-bottom:12px}.gallery-zoom{cursor:zoom-in;display:block}.next-project{grid-template-columns:1fr auto;align-items:center;gap:20px;padding-block:55px 70px;display:grid}.next-project .eyebrow{grid-column:span 2}.next-project>span:not(.eyebrow){font-family:var(--sans);font-size:24px;line-height:1.4}.next-project>span:last-child{color:var(--accent)}.lightbox{background:#fff;border:0;width:1500px;max-width:96vw;max-height:96vh;padding:22px;overflow:auto}.lightbox::backdrop{background:#0f0f0fdb}.lightbox-bar{background:#fff;justify-content:space-between;align-items:center;padding-block:10px 20px;font-size:12px;display:flex;position:sticky;top:-22px}.lightbox-close{border:1px solid var(--line);background:#fff;padding:10px 18px;font-size:13px}.lightbox-image{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:80vh;margin:auto}@media (width<=700px){:root{--page-gutter:12px}.site-header nav{grid-template-columns:1fr auto auto auto;column-gap:clamp(12px,4vw,24px)}.site-header nav a{padding-block:8px;font-size:11.5px;line-height:20px}.header-end{gap:16px}.landing{padding-top:80px;padding-bottom:20px}.landing-bottom{grid-template-columns:1fr;gap:28px}.landing-bio{grid-row:1;max-width:510px;padding-right:0}.landing-contact{flex-flow:wrap;gap:4px 22px;font-size:11px}.page-footer{padding-top:32px}.section-heading{flex-wrap:wrap;gap:15px;margin-bottom:26px}.section-heading h2{font-size:28px}.next-project{padding-block:38px 50px}.next-project>span:not(.eyebrow){font-size:29px}.lightbox{padding:12px}.lightbox-bar{padding-block:0 12px;font-size:11px;top:-12px}.lightbox-close{padding:9px 12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}::view-transition-group(*),::view-transition-new(*),::view-transition-old(*){animation:none!important}}
