:root{--paper:#f4f1e9;--ink:#292c25;--muted:#51574b;--accent:#985039;--line:#d6d5c9;--sage:#e9ebe1;--figure-mat:#ebe8df;--serif:Georgia, "Times New Roman", serif;--sans:Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--width:1200px;--header-height:6.625rem;--text-lead:1.25rem;--text-body:1.125rem;--text-ui:1rem;--text-small:.875rem;--leading-body:1.65;--leading-support:1.55;--measure:52ch}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 24px)}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:var(--text-body);line-height:var(--leading-body);-webkit-font-smoothing:antialiased;overflow-wrap:anywhere;margin:0}a{color:inherit;text-decoration:none}a,summary{touch-action:manipulation}a:hover{color:var(--accent)}a:focus-visible,button:focus-visible,summary:focus-visible,video:focus-visible{outline:2px solid var(--accent);outline-offset:6px}::selection{color:var(--ink);background:#dfc5b4}figure,p,h1,h2,h3{margin:0}img,video{max-width:100%;display:block}svg{flex-shrink:0}em{font-weight:400}.wrap{width:min(var(--width), calc(100% - 112px));margin-inline:auto}.eyebrow{font-size:var(--text-small);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600;line-height:1.6}.skip-link{z-index:30;background:var(--ink);color:var(--paper);padding:12px 20px;position:fixed;top:-80px;left:20px}.skip-link:focus{top:12px}.site-header{z-index:20;background:var(--paper);position:sticky;top:0}.site-header-inner{height:var(--header-height);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;display:flex}.identity{min-width:0;font-size:var(--text-ui);align-items:center;gap:18px;font-weight:500;display:flex}.monogram{font:italic 38px var(--serif);letter-spacing:-4px}.monogram span{color:var(--accent)}nav{min-width:0;font-size:var(--text-ui);flex-wrap:wrap;align-items:center;gap:32px;font-weight:500;display:flex}nav a{padding-block:10px}.nav-cv{border-left:1px solid var(--line);align-items:center;gap:8px;padding-left:27px;display:flex}.nav-cv svg{width:16px}.hero{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center;gap:30px;padding-block:84px 74px;display:grid}h1{font:400 clamp(46px, 5vw, 74px)/1.07 var(--serif);letter-spacing:-2.8px;white-space:nowrap;margin:0 0 30px}.title-emphasis{color:var(--accent);font-style:italic;font-weight:400}.hero-intro{font-size:var(--text-lead);line-height:var(--leading-body);color:var(--ink);max-width:46ch}.chinese-name{letter-spacing:1px;margin-left:5px;font-size:.9em}.hero-links{flex-wrap:wrap;align-items:center;gap:16px 30px;margin-top:31px;display:flex}.button{background:var(--ink);color:var(--paper);font-size:var(--text-ui);border:1px solid var(--ink);align-items:center;gap:31px;padding:12px 19px;transition:background .18s;display:inline-flex}.button:hover{background:var(--accent);border-color:var(--accent);color:var(--paper)}.text-link{font-size:var(--text-ui);border-bottom:1px solid var(--line);align-items:center;gap:9px;padding-block:5px;font-weight:500;transition:border-color .18s;display:inline-flex}.text-link:is(:hover,:focus-visible){border-color:var(--accent);color:var(--accent)}.text-link svg{width:16px;height:16px}.field-drawing{align-self:center;width:100%;max-width:480px;margin:0 0 4px auto}.field-drawing svg{width:100%;height:auto;display:block}.interests{border-block:1px solid var(--line);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:32px;padding-block:20px;display:grid}.interests p{font-size:var(--text-ui);color:var(--ink)}.interests p span{color:var(--muted);padding-inline:12px}.section-heading{margin-block:84px 49px}.section-heading h2{margin-top:15px}h2{font:400 clamp(32px, 3.15vw, 45px)/1.15 var(--serif);letter-spacing:-1.2px}.project{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);grid-template-areas:"visual heading""visual copy";align-items:center;gap:0 65px;margin-bottom:28px;padding-block:20px 48px;display:grid}.project:last-child{border-bottom:0;margin-bottom:12px}.project-reverse{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);grid-template-areas:"heading visual""copy visual"}.project-heading{grid-area:heading;align-self:end}.project-copy{grid-area:copy;align-self:start}.project-visual{grid-area:visual}.project-image{aspect-ratio:16/9;background:var(--figure-mat);cursor:zoom-in;border:1px solid var(--line);justify-content:center;align-items:center;padding:clamp(10px,1.4vw,18px);transition:border-color .18s;display:flex;position:relative}.project-image img{object-fit:contain;width:100%;height:100%;min-height:0;display:block}.project-image:hover{border-color:var(--accent)}.project figcaption{font-size:var(--text-ui);line-height:var(--leading-support);color:var(--muted);margin-top:12px}.project-meta{font-size:var(--text-ui);letter-spacing:.06em;text-transform:none}.project-meta span{color:var(--muted);padding-inline:7px}.project h3{font:400 35px/1.2 var(--serif);letter-spacing:-.6px;margin-top:17px}.project-subtitle{font:italic 22px/1.4 var(--serif);color:var(--accent);margin-top:6px}.project-description{font-size:var(--text-body);color:var(--ink);line-height:var(--leading-body);max-width:var(--measure);margin-top:22px}.project-description>*+*{margin-top:1em}.project-description a{text-underline-offset:.2em;text-decoration:underline}.project-status{font-size:var(--text-ui);color:var(--ink);line-height:var(--leading-support);max-width:var(--measure);margin-top:18px}.project-status:before{content:"";background:var(--accent);vertical-align:middle;width:20px;height:1px;margin-right:10px;display:inline-block}.project-links{flex-wrap:wrap;gap:20px;margin-top:14px;display:flex}.image-viewer{border:1px solid var(--line);background:var(--paper);width:min(1400px,100vw - 48px);max-width:none;max-height:calc(100dvh - 48px);color:var(--ink);padding:24px}.image-viewer::backdrop{background:#191c17bf}body:has(.image-viewer[open]){overflow:hidden}.image-viewer-header,.image-viewer-footer{justify-content:space-between;align-items:center;gap:24px;display:flex}.image-viewer h2{letter-spacing:-.5px;font-size:28px}.image-viewer-header form{flex-shrink:0}.image-viewer-close{min-height:44px;font:inherit;font-size:var(--text-ui);color:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:16px;padding:4px 8px;display:inline-flex}.image-viewer-close span{font-size:28px}.image-viewer-close:hover{color:var(--accent)}.image-viewer-image{background:var(--paper);margin-block:18px}.image-viewer-loading{text-align:center;font-size:var(--text-ui);color:var(--muted);padding:80px 20px}.image-viewer-image [hidden]{display:none}.image-viewer-image img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:calc(100dvh - 240px);margin:auto}.image-viewer-image video{aspect-ratio:16/9;background:var(--paper);object-fit:contain;width:100%;max-height:calc(100dvh - 240px);display:block}.image-viewer-footer{font-size:var(--text-ui);align-items:start}.image-viewer-footer>div{flex:1;min-width:0}.image-viewer-resources{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;gap:8px 24px;max-width:50%;display:flex}.image-viewer-resources .text-link{white-space:nowrap;min-height:44px}.image-viewer-resources [aria-current=true]{color:var(--accent)}.image-viewer-resources[hidden]{display:none}.image-viewer-license{font-size:var(--text-small);color:var(--muted);text-underline-offset:3px;text-decoration:underline}.about{background:var(--sage);padding-block:78px}.about-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:100px;display:grid}.about h2{margin:18px 0 27px}.about-copy>p:not(.eyebrow){font-size:var(--text-body);line-height:var(--leading-body);color:var(--ink);max-width:var(--measure);margin-bottom:22px}.about-copy .text-link{margin-top:8px}.experience{margin:0;padding:0;list-style:none}.experience li{border-bottom:1px solid #ced2c4;padding-block:24px}.experience li:first-child{padding-top:0}.experience li:last-child{border:0;padding-bottom:0}.experience h3{font-size:var(--text-body);margin-block:8px 3px;font-weight:600;line-height:1.5}.experience li>p:last-child{font-size:var(--text-ui);color:var(--muted)}.contact{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:100px;padding-block:90px;display:grid}.contact h2{margin-top:19px}.profile-card{min-width:0}.profile-card-identity{align-items:center;gap:16px;display:flex}.profile-avatar{background:var(--paper);border-radius:50%;flex:0 0 56px}.profile-avatar img{border-radius:inherit;object-fit:cover;width:56px;height:56px}.profile-card h3{font:400 26px/1.2 var(--serif);letter-spacing:-.5px}.profile-location{font-size:var(--text-ui);color:var(--muted);margin-top:4px}.profile-card-link{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;min-height:60px;margin-top:16px;padding-block:16px;font-size:clamp(1.125rem,2.2vw,1.375rem);font-weight:400;line-height:1.5;display:flex}.profile-card-link:is(:hover,:focus-visible){border-color:var(--accent);color:var(--accent)}.profile-card-link svg{width:18px;height:18px}.profile-card-email span{overflow-wrap:anywhere;min-width:0}.profile-card-profiles{flex-wrap:wrap;gap:4px 22px;margin-top:8px;display:flex}.profile-card-profiles a{white-space:nowrap;align-items:center;gap:8px;min-height:44px;padding-block:10px;display:inline-flex}.profile-card-profiles svg{width:14px;height:14px}.profile-card-profiles a:is(:hover,:focus-visible){color:var(--accent);text-underline-offset:6px;text-decoration:underline}.profile-card-more{color:var(--muted)}.site-footer{border-top:1px solid var(--line);font-size:var(--text-small);color:var(--muted);justify-content:space-between;align-items:center;padding-block:25px 32px;display:flex}.footer-cn{margin-left:14px}.site-footer>a{align-items:center;gap:12px;display:flex}.site-footer svg{width:14px;height:14px}@media (width>=1600px){.hero{padding-block:105px 85px}}@media (width<=1000px){.wrap{width:calc(100% - 64px)}.hero{gap:5px;padding-block:65px}h1{font-size:clamp(42px,5.5vw,60px)}.hero-links{gap:20px}.field-drawing{margin:0}.interests{gap:20px}.interests p span{padding-inline:8px}.project{column-gap:35px}.about-grid,.contact{gap:55px}.project h3{font-size:30px}}@media (width<=700px){:root{--header-height:5rem}.wrap{width:calc(100% - 40px)}.identity{gap:10px}.monogram{font-size:32px}nav{gap:0 16px}.nav-cv{display:none}.hero{grid-template-columns:minmax(0,1fr);gap:16px;padding-top:50px;padding-bottom:28px}h1{letter-spacing:-1.7px;margin-block:0 24px;font-size:clamp(39px,9.8vw,65px)}.hero-intro{font-size:var(--text-body)}.hero-links{gap:12px;margin-top:26px}.hero-links .button{white-space:nowrap;gap:8px;min-height:44px;padding:10px 14px}.hero-links .text-link{white-space:nowrap;min-height:44px}.field-drawing{width:100%;max-width:340px;margin-inline:auto}.interests{padding-block:19px;display:block}.interests p{line-height:var(--leading-body);margin-top:8px}.interests p span{padding-inline:6px}.section-heading{margin-block:51px 25px;display:block}h2{letter-spacing:-.7px;font-size:34px}.project,.project-reverse{grid-template-columns:minmax(0,1fr);grid-template-areas:"heading""visual""copy";gap:24px;margin-bottom:25px;padding-bottom:34px}.project-description{margin-top:0}.project h3{margin-top:12px;font-size:33px}.project-description,.project-status{max-width:none}.about{padding-block:49px}.about-grid,.contact{grid-template-columns:minmax(0,1fr);gap:38px}.about h2{margin-top:16px}.about-copy>p:not(.eyebrow){max-width:none}.experience{margin-top:3px}.contact{gap:27px;padding-block:53px}.image-viewer{width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:16px}.image-viewer h2{font-size:24px}.image-viewer-header{gap:12px}.image-viewer-footer{flex-direction:column;gap:10px}.image-viewer-resources{justify-content:flex-start;max-width:100%}.image-viewer-image img,.image-viewer-image video{max-height:calc(100dvh - 290px)}.site-footer{flex-wrap:wrap;gap:16px;padding-block:23px}.footer-cn{margin-left:8px}}@media (width<=380px){h1{font-size:clamp(34px,10vw,38px)}.identity>span:last-child{display:none}.identity{min-width:40px}.site-header-inner{gap:12px}nav{column-gap:20px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}@media print{.site-header{position:static}.skip-link,nav,.hero-links,.field-drawing,.site-footer,.image-viewer{display:none}.wrap{width:100%}.hero,.about,.contact{padding-block:24px}.project{break-inside:avoid}.about,.profile-card{background:0 0}body{font-size:12px}a{text-decoration:underline}}
