@font-face{font-family:Portfolio Sans;src:url('assets/noto-sans-sc.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{--paper:#fafbf9;--ink:#171d1a;--muted:#626b65;--line:#dce2dc;--green:#245a44;--lime:#d4ef8b;--soft:#eef2ed;--width:1280px;--radius:6px}
*{box-sizing:border-box;letter-spacing:0}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Segoe UI','Portfolio Sans','Microsoft YaHei',sans-serif;font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased}button,input{font:inherit}a{color:inherit;text-decoration:none}button{color:inherit;cursor:pointer}img{display:block;max-width:100%;height:auto}button,a,input{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--green);outline-offset:5px}button{border:0}button:disabled{cursor:default}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:600;line-height:1.3}svg.lucide{width:20px;height:20px;stroke-width:1.6;flex-shrink:0;vertical-align:middle}.wrap{width:min(var(--width),calc(100% - 112px));margin-inline:auto}.skip-link{position:fixed;top:-70px;left:16px;background:var(--ink);color:white;padding:12px;z-index:20}.skip-link:focus{top:12px}[hidden]{display:none!important}section[id],article[id]{scroll-margin-top:100px}
.site-header{height:90px;padding:0 56px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(250,251,249,.96);position:sticky;top:0;z-index:10;gap:24px}.identity{display:flex;align-items:center;gap:12px;font-size:16px;font-weight:600;line-height:1.35}.monogram{width:44px;height:44px;display:grid;place-items:center;background:var(--ink);color:var(--lime);font-size:14px;font-weight:700;border-radius:50%}.identity-sub{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:3px}.site-header nav{display:flex;align-items:center;gap:34px;font-size:14px}.site-header nav a{position:relative;padding:8px 0;color:#525e55}.site-header nav a:hover,.site-header nav a[aria-current]{color:var(--green)}.site-header nav a[aria-current]:after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--green)}.contact-nav{display:flex;align-items:center;gap:13px;font-size:14px}.contact-nav .lucide{width:17px}.intro{padding-top:46px;padding-bottom:42px}.intro-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:21px}.kicker{font-size:11px;font-weight:600;color:var(--green)}.availability{font-size:12px;color:var(--muted)}.intro h1{font-size:68px;display:flex;align-items:baseline;gap:26px;font-weight:600;line-height:1.18}.name-en{font-size:31px;font-weight:350;color:#7c857d}.intro-bottom{margin-top:25px;display:flex;align-items:end;justify-content:space-between;gap:24px}.intro-bottom p{font-size:24px;font-weight:450;line-height:1.7}.intro-bottom p span{color:var(--muted)}.button{display:inline-flex;justify-content:center;align-items:center;gap:18px;min-height:46px;padding:10px 21px;border:1px solid var(--line);border-radius:4px;background:transparent;font-size:14px;white-space:nowrap;transition:background .18s,transform .18s}.button:hover{transform:translateY(-2px);background:var(--soft)}.button.primary{background:var(--ink);border-color:var(--ink);color:white}.button.primary:hover{background:var(--green);border-color:var(--green)}.button.primary .lucide{color:var(--lime)}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px}.section-heading h2{font-size:28px}.section-heading h2>span{font-size:13px;color:var(--muted);font-weight:400;display:inline-block;margin-left:20px}.section-heading p{font-size:14px;color:var(--muted);margin-top:14px}.section-note{color:var(--muted);font-size:12px;flex-shrink:0}.selected{padding:28px 0 50px;border-top:1px solid var(--line)}.featured-grid{display:grid;grid-template-columns:1.18fr 1fr;gap:30px}.work-card{min-width:0;position:relative}.work-image{position:relative;background:#eef0ee;aspect-ratio:3/2;overflow:hidden;border-radius:var(--radius)}.work-image>img{width:100%;height:100%;object-fit:contain;transition:transform .35s}.work-link:hover .work-image>img{transform:scale(1.025)}.work-link:hover h3{color:var(--green)}.featured-card .work-image{aspect-ratio:1.8}.featured-card .work-image>img{object-fit:contain}.open-work{position:absolute;bottom:17px;right:17px;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:rgba(250,251,249,.96);opacity:0;transform:translateY(8px);transition:opacity .2s,transform .2s}.work-link:hover .open-work,.work-link:focus-visible .open-work{opacity:1;transform:translateY(0)}.work-meta{display:flex;justify-content:space-between;gap:10px;margin-top:18px;font-size:11px;color:var(--muted)}.work-meta span:first-child{color:var(--green)}.work-card h3{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:21px;margin-top:8px;transition:color .2s}.work-card h3 .lucide{width:18px;height:18px}.work-card .work-link>p{color:var(--muted);font-size:13px;margin-top:7px}.tags{display:flex;gap:12px;flex-wrap:wrap;margin-top:15px;font-size:10px;color:#66716a}.tags span+span:before{content:'/';color:#b2bbb4;margin-right:12px}.featured-card h3{font-size:25px}.featured-card .tags{margin-top:12px}.play-mark{position:absolute;left:18px;bottom:18px;width:39px;height:39px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.95);color:var(--ink)}.play-mark .lucide{width:17px;height:17px}.stats-band{background:var(--soft);border-block:1px solid var(--line)}.stats{display:grid;grid-template-columns:repeat(4,1fr);padding:30px 0}.stats>div{padding-left:32px;border-left:1px solid #d3dcd3}.stats>div:first-child{padding-left:0;border-left:0}.stats strong{font-size:36px;font-weight:450;line-height:1.25}.stats strong span{font-size:13px;margin-left:8px;color:var(--muted)}.stats p{font-size:12px;margin-top:9px;color:var(--muted)}
.archive{padding-block:72px}.archive-total{font-size:11px;color:var(--muted);font-family:Consolas,monospace}.filter-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--line);padding-bottom:18px;margin-top:36px}.filters{display:flex;gap:6px;flex-wrap:wrap}.filters button{padding:8px 16px;border-radius:3px;background:transparent;color:var(--muted);font-size:13px}.filters button.active{background:var(--ink);color:white}.filters button:not(.active):hover{background:var(--soft);color:var(--ink)}.search-field{display:flex;align-items:center;gap:9px;border-bottom:1px solid #aab5ab;padding:7px 0;width:195px}.search-field .lucide{height:16px;width:16px;color:var(--muted)}.search-field input{min-width:0;width:100%;background:transparent;border:0;font-size:12px;color:var(--ink);outline-offset:3px}.search-field input::placeholder{color:#626b65}.filter-status{font-size:11px;color:var(--muted);margin:14px 0 24px}.work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:44px 26px}.empty-state{text-align:center;padding:70px 16px;background:var(--soft)}.empty-state>.lucide{width:30px;height:30px;margin-bottom:18px}.empty-state h3{font-size:18px;margin-bottom:20px}.work-note{display:flex;gap:18px;border-top:1px solid var(--line);margin-top:48px;padding-top:26px;align-items:start}.work-note>.lucide{color:var(--green);margin-top:4px}.work-note h3{font-size:14px}.work-note p{color:var(--muted);font-size:12px;margin-top:8px;max-width:860px}
.research-band{background:#edf2ee;padding:65px 0 70px;border-block:1px solid var(--line)}.papers-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 56px;margin-top:35px}.paper{padding:30px 0;border-top:1px solid #cbd6cc;display:flex;flex-direction:column}.paper-journal{font-family:'Segoe UI',sans-serif;font-weight:600;font-size:17px;color:var(--green)}.paper-journal span{font-size:12px;font-weight:400;margin-left:12px;color:var(--muted)}.paper h3{font-size:21px;line-height:1.65;margin:18px 0 11px;max-width:560px}.paper h3 .lucide{margin-left:8px;width:17px;height:17px}.paper>p{font-size:13px;color:var(--muted);max-width:550px}.paper-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:22px}.paper-bottom>span{font-size:11px;background:#dce7dd;padding:3px 9px;border-radius:2px;color:#31503c}.text-button{background:transparent;padding:4px 0;display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--green)}.text-button:hover{text-decoration:underline}.text-button .lucide{width:15px;height:15px}.awards{padding-block:72px}.awards-list{border-top:1px solid var(--line)}.award-row{display:grid;grid-template-columns:90px 1fr 115px 42px;gap:20px;align-items:center;padding:25px 0;border-bottom:1px solid var(--line)}.award-year{font-size:13px;color:var(--muted)}.award-row h3{font-size:16px}.award-row p{font-size:12px;color:var(--muted);margin-top:7px}.award-row>strong{font-weight:500;font-size:14px;color:var(--green)}.icon-button{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);background:transparent;border-radius:50%}.icon-button:hover{background:var(--lime);border-color:var(--lime)}.icon-button .lucide{width:18px;height:18px}.additional-records{margin-top:27px;border-bottom:1px solid var(--line)}.additional-records summary{cursor:pointer;display:flex;gap:20px;align-items:center;list-style:none;font-size:14px;padding:13px 0 22px}.additional-records summary::-webkit-details-marker{display:none}.additional-records summary>span{font-size:11px;color:var(--muted)}.additional-records summary .lucide{margin-left:auto;width:17px}.additional-records[open] summary .lucide{transform:rotate(45deg)}.additional-records ul{padding:0 0 24px;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:20px 36px;margin:0}.additional-records li strong{font-size:13px;font-weight:500;display:block}.additional-records li span{display:block;font-size:12px;color:var(--muted);margin-top:8px}
.about-band{background:#eaf0e7;padding-block:65px;border-top:1px solid #d5dfd0}.about-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:90px}.about-heading h2{font-size:32px;line-height:1.65;margin-top:18px}.about-heading>p:not(.kicker){font-size:14px;line-height:2;color:var(--muted);margin-top:26px;max-width:540px}.email-link{font-size:23px;display:flex;gap:16px;align-items:center;margin-top:34px;overflow-wrap:anywhere}.email-link .lucide{width:22px}.copy-email{margin-top:9px}.education{border-bottom:1px solid #ced9c9;padding-bottom:25px;margin-bottom:25px}.education>span,.about-skills>span{font-size:11px;color:var(--muted)}.education h3{font-size:18px;margin:8px 0}.education small{font-size:10px;color:var(--green);margin-left:6px}.education p,.about-skills p{font-size:13px;color:#56624f}.about-skills p{margin:6px 0 18px}.site-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:100px;font-size:11px;color:var(--muted)}.site-footer>a:first-child{font-size:17px;font-weight:600;color:var(--ink)}.site-footer>a:first-child span{font-size:11px;font-weight:400;margin-left:12px}.site-footer>a:last-child{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%}
.lightbox{border:0;padding:0;width:calc(100% - 56px);height:calc(100dvh - 48px);max-width:1500px;max-height:none;background:#fafbf9;color:var(--ink);border-radius:6px;overflow:hidden}.lightbox::backdrop{background:rgba(13,20,16,.82)}.lightbox-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:65px;padding:12px 24px;border-bottom:1px solid var(--line)}.lightbox-toolbar>p{font-size:13px;max-width:calc(100% - 100px);line-height:1.5}.lightbox-toolbar>div{display:flex;align-items:center;gap:14px}.lightbox-toolbar a,.lightbox-toolbar button{display:grid;place-items:center;width:32px;height:32px;background:transparent}.lightbox-content{height:calc(100% - 65px);overflow:auto;padding:20px;display:flex;align-items:start;justify-content:center}.lightbox-content img{width:auto;max-width:100%;max-height:100%;object-fit:contain}.toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%,15px);opacity:0;background:var(--ink);color:white;padding:10px 24px;border-radius:4px;z-index:30;transition:opacity .2s,transform .2s;pointer-events:none;font-size:13px;max-width:90%}.toast.visible{opacity:1;transform:translate(-50%,0)}
.back-link{font-size:13px;display:flex;align-items:center;gap:9px}.project-intro{padding:65px 0 42px;max-width:970px}.project-intro .kicker{display:flex;align-items:center;gap:20px}.project-status{font-weight:400;background:var(--soft);color:var(--muted);padding:3px 9px;font-size:11px}.project-intro h1{font-size:52px;margin:21px 0 18px;overflow-wrap:anywhere}.project-subtitle{font-size:25px;color:var(--muted)}.project-summary{font-size:16px;line-height:1.95;max-width:780px;margin-top:24px;color:#4d5a50}.project-intro .button{margin-top:26px}.project-context{display:grid;grid-template-columns:1.3fr 1.2fr .65fr;gap:32px;padding:25px 0;border-block:1px solid var(--line);margin-bottom:52px}.project-context span{font-size:11px;color:var(--muted)}.project-context p{font-size:13px;margin-top:8px}.case-video{margin-bottom:60px}.case-video h2{font-size:26px;margin-bottom:25px}.case-video video{display:block;width:100%;max-height:700px;aspect-ratio:16/9;background:#121814;border-radius:6px}.text-link{display:inline-flex;align-items:center;gap:8px;color:var(--green);font-size:13px;margin-top:14px}.detail-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:35px}.detail-gallery>figure:only-child{grid-column:1/-1;max-width:1000px;justify-self:center}.gallery-zoom{display:block;position:relative;width:100%;padding:16px;background:var(--soft);border-radius:6px}.gallery-zoom img{width:100%;height:560px;object-fit:contain}.gallery-zoom>.lucide{position:absolute;bottom:20px;right:20px;padding:7px;background:white;border-radius:50%;width:34px;height:34px}.detail-gallery figcaption{font-size:12px;color:var(--muted);margin-top:12px}.project-process{display:grid;grid-template-columns:.75fr 1.5fr;gap:70px;margin-block:65px;padding-top:45px;border-top:1px solid var(--line)}.project-process h2{font-size:29px;margin-top:10px}.project-process ol{padding-left:24px;margin:0}.project-process li{font-size:15px;line-height:1.9;margin-bottom:17px;padding-left:8px}.project-result{background:var(--soft);padding:22px;margin-top:26px;border-left:3px solid var(--green)}.project-result h3{font-size:14px}.project-result p{font-size:13px;line-height:1.9;color:var(--muted);margin-top:8px}.next-project{display:flex;align-items:center;justify-content:space-between;gap:24px;border-block:1px solid var(--line);padding:30px 0}.next-project a{display:flex;align-items:center;gap:14px;font-size:13px}.next-project a:last-child{text-align:right;color:var(--muted);font-size:11px}.next-project strong{display:block;font-size:19px;font-weight:500;color:var(--ink);margin-top:3px}
@media(min-width:1600px){:root{--width:1440px}.intro{padding-top:60px;padding-bottom:48px}.intro h1{font-size:76px}.featured-card .work-image{aspect-ratio:1.9}.work-grid{gap:48px 32px}}
@media(max-width:1000px){.wrap{width:calc(100% - 64px)}.site-header{padding-inline:32px;height:78px}.site-header nav{gap:20px}.intro h1{font-size:58px}.intro-bottom p{font-size:21px}.featured-grid{gap:24px}.work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about-grid{gap:40px}.about-heading h2{font-size:27px}.email-link{font-size:19px}.papers-grid{gap:0 30px}.award-row{grid-template-columns:60px 1fr 90px 38px;gap:15px}.section-heading h2{font-size:26px}.section-heading h2>span{display:block;margin:8px 0 0;font-size:12px}.stats strong{font-size:30px}.stats>div{padding-left:22px}.gallery-zoom img{height:430px}}
@media(max-width:640px){.wrap{width:calc(100% - 36px)}.site-header{height:69px;padding-inline:18px;gap:15px}.monogram{width:36px;height:36px;font-size:12px}.identity{font-size:14px;gap:8px}.identity-sub{font-size:9px}.site-header nav{gap:17px;margin-left:auto}.site-header nav a{font-size:12px}.site-header nav a:nth-child(1),.site-header nav a:nth-child(3){display:none}.contact-nav{font-size:12px;gap:4px}.contact-nav .lucide{width:14px}.intro{padding-top:32px;padding-bottom:30px}.intro-top{display:block;margin-bottom:20px}.kicker{font-size:10px}.availability{display:block;margin-top:12px;font-size:11px}.intro h1{font-size:46px;gap:10px;display:block}.name-en{display:block;font-size:23px;margin-top:9px}.intro-bottom{display:block;margin-top:23px}.intro-bottom p{font-size:18px;line-height:1.85}.intro-bottom .button{margin-top:22px;font-size:12px;min-height:42px}.section-heading{margin-bottom:22px;gap:12px}.section-heading h2{font-size:23px}.section-heading h2>span{font-size:11px;margin-top:6px}.section-note{font-size:10px}.selected{padding:25px 0 36px}.featured-grid{grid-template-columns:1fr;gap:30px}.featured-card .work-image{aspect-ratio:1.65}.featured-card h3{font-size:21px}.work-meta{margin-top:13px;font-size:10px}.work-card h3{font-size:19px}.work-card .work-link>p{font-size:12px}.tags{font-size:10px;margin-top:10px;gap:8px}.tags span+span:before{margin-right:8px}.stats{grid-template-columns:1fr 1fr;gap:25px 0;padding:25px 0}.stats>div:nth-child(3){padding-left:0;border-left:0}.stats strong{font-size:29px}.stats p{font-size:10px;margin-top:7px}.stats strong span{font-size:11px}.archive{padding-block:44px}.archive-total{font-size:9px;white-space:nowrap}.section-heading p{font-size:12px;line-height:1.8;margin-top:10px}.filter-toolbar{display:block;margin-top:24px;padding-bottom:13px}.filters{gap:3px;justify-content:space-between;flex-wrap:nowrap}.filters button{padding:7px 9px;font-size:11px;white-space:nowrap}.search-field{width:100%;margin-top:18px;padding:9px 0;border:0;background:var(--soft);padding-inline:12px;border-radius:3px}.filter-status{font-size:10px;margin-bottom:20px}.work-grid{grid-template-columns:1fr;gap:30px}.work-grid .work-image{aspect-ratio:1.5}.work-note{margin-top:32px;padding-top:21px;gap:12px}.work-note h3{font-size:13px}.work-note p{font-size:11px}.research-band{padding:42px 0}.research-band .section-heading{display:block}.research-band .section-note{display:block;margin-top:12px}.papers-grid{grid-template-columns:1fr;margin-top:25px}.paper{padding:24px 0}.paper-journal{font-size:16px}.paper h3{font-size:19px;line-height:1.7;margin-top:13px}.paper>p{font-size:12px}.paper-bottom{padding-top:18px}.awards{padding-block:45px}.award-row{grid-template-columns:44px 1fr 36px;gap:10px;padding:20px 0;align-items:start}.award-row h3{font-size:14px;line-height:1.65}.award-row p{font-size:10px;margin-top:5px}.award-row .award-year{font-size:11px;padding-top:4px}.award-row>strong{grid-column:2;grid-row:auto;font-size:12px;margin-top:-2px}.award-row>.icon-button{grid-column:3;grid-row:span 2;width:34px;height:34px}.award-row>div{grid-column:2}.additional-records summary{font-size:13px;gap:10px}.additional-records summary>span{font-size:10px}.additional-records ul{grid-template-columns:1fr}.about-band{padding-block:42px}.about-grid{grid-template-columns:1fr;gap:38px}.about-heading h2{font-size:28px}.about-heading>p:not(.kicker){font-size:13px;margin-top:19px}.email-link{font-size:20px;margin-top:25px;gap:9px}.site-footer{min-height:88px;gap:10px;flex-wrap:wrap}.site-footer p{font-size:9px}.site-footer>a:first-child{font-size:15px}.site-footer>a:first-child span{display:none}.lightbox{width:calc(100% - 16px);height:calc(100dvh - 24px);border-radius:4px}.lightbox-toolbar{padding:10px 12px;gap:9px}.lightbox-toolbar>p{font-size:11px}.lightbox-toolbar>div{gap:7px}.lightbox-content{padding:10px}.project-intro{padding:38px 0 28px}.project-intro h1{font-size:34px;margin-top:18px}.project-subtitle{font-size:20px;line-height:1.7}.project-summary{font-size:14px;margin-top:20px}.project-intro .kicker{gap:12px;flex-wrap:wrap}.project-context{grid-template-columns:1fr;gap:17px;padding:22px 0;margin-bottom:35px}.project-context p{margin-top:4px;font-size:12px}.detail-gallery{grid-template-columns:1fr;gap:24px}.gallery-zoom{padding:10px}.gallery-zoom img{height:auto;max-height:640px}.project-process{grid-template-columns:1fr;gap:26px;margin-block:38px;padding-top:28px}.project-process h2{font-size:25px}.project-process li{font-size:13px}.next-project{gap:15px;padding:25px 0}.next-project a{font-size:11px;gap:8px}.next-project strong{font-size:15px;max-width:160px;overflow-wrap:anywhere}.case-video{margin-bottom:35px}.case-video h2{font-size:23px}.back-link{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.work-link:hover .work-image>img,.button:hover{transform:none}}
@media print{.site-header,.filter-toolbar,.lightbox,.toast,.site-footer,.copy-email{display:none}.wrap{width:100%}.work-grid{grid-template-columns:repeat(3,1fr)}.work-card,.paper,.award-row{break-inside:avoid}body{background:white;font-size:11px}.intro{padding:10px 0}.intro h1{font-size:40px}.work-image{max-height:200px}.archive,.awards{padding:25px 0}.project-intro{padding:20px 0}}
