@charset "UTF-8";
:root{--bg:#f7f8f3;--ink:#203e34;--green:#204e42;--muted:#66736b;--line:#dce2d9;--mint:#e6eddf;--coral:#c5755f;--serif:Georgia,"Songti SC","Noto Serif CJK SC","SimSun",serif;--sans:"Microsoft YaHei","PingFang SC",system-ui,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.8;-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid var(--coral);outline-offset:5px}img{display:block;max-width:100%}button{border:0}h1,h2,h3,p{margin:0}::selection{background:#d7e7c5}.wrap{max-width:1240px;width:calc(100% - 104px);margin:auto}.skip{position:fixed;top:-100px;left:20px;z-index:100;background:#fff;padding:12px}.skip:focus{top:10px}.header{height:112px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font-size:18px;font-weight:600;line-height:1.35}.brand-icon{display:grid;place-items:center;border:1px solid #879b86;border-radius:50%;width:46px;height:46px;font:27px var(--serif)}.brand small{display:block;font-size:9px;letter-spacing:2px;font-weight:400;margin-top:5px}.header nav{display:flex;gap:35px;font-size:13px}.header nav a{position:relative}.header nav a:after{content:"";height:1px;background:var(--green);position:absolute;left:0;right:100%;bottom:-5px;transition:right .2s}.header nav a:hover:after{right:0}.nav-contact{border:1px solid #aab7a6;border-radius:30px;padding:9px 20px;font-size:12px}.nav-contact span{margin-left:17px}.hero{display:grid;grid-template-columns:1.2fr 1fr;gap:30px;align-items:center;min-height:650px;padding-top:40px;padding-bottom:58px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:500;line-height:1.7}.hero .eyebrow{display:flex;align-items:center;gap:10px;font-size:11px;letter-spacing:1px}.dot{width:6px;height:6px;border-radius:50%;background:var(--coral)}.location{margin-left:10px;border-left:1px solid #b6c0b4;padding-left:17px;color:var(--muted)}h1{font:600 clamp(46px,4.75vw,70px)/1.35 var(--serif);letter-spacing:-2px;margin:28px 0 25px}.underline{position:relative;white-space:nowrap}.underline:after{position:absolute;content:"";height:9px;bottom:0;left:3px;right:0;border-top:2px solid #c99775;border-radius:70% 50%;transform:rotate(-2deg)}.hero-description{font-size:14px;line-height:2.05;color:#5c6d62}.hero-actions{display:flex;align-items:center;gap:30px;margin-top:30px}.button{display:inline-flex;gap:32px;align-items:center;padding:14px 25px;border-radius:5px;font-size:12px}.primary{color:#fff;background:var(--green);transition:background .2s,transform .2s}.primary:hover{background:#153c31;transform:translateY(-2px)}.text-link{font-size:12px;border-bottom:1px solid #a6b2a2;padding-bottom:6px;display:inline-block}.text-link span{margin-left:20px}.hero-foot{font-size:10px;color:#7b857b;margin-top:37px}.hero-foot span{margin:0 9px}.hero-visual{position:relative;min-height:484px;display:grid;place-items:center}.portrait-frame{height:440px;width:360px;position:relative;border-radius:200px 200px 14px 14px;overflow:hidden;background:#dce5d6}.portrait-frame:after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(transparent,rgba(10,33,27,.55))}.portrait-frame img{height:100%;width:100%;object-fit:cover;object-position:50% 35%}.portrait-caption{position:absolute;z-index:1;bottom:20px;left:24px;color:#fff;font-size:11px;letter-spacing:1px}.orbit{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#c0c8ac;stroke-width:1}.orbit path{stroke:var(--coral);stroke-width:1.5}.orbit circle{fill:var(--coral);stroke:var(--bg)}.hero-stamp{position:absolute;top:51px;right:0;width:115px;height:115px;transform:rotate(9deg);border-radius:50%;background:#e8d6b8;color:#46533d;box-shadow:0 6px 22px #324f3e0c;display:flex;flex-direction:column;align-items:center;justify-content:center;font:14px/1.6 var(--serif)}.hero-stamp svg{width:37px;height:21px;fill:none;stroke:var(--green);stroke-width:1.3;margin-top:4px}.visual-index{position:absolute;right:-16px;top:235px;writing-mode:vertical-rl;font-size:8px;letter-spacing:2px;color:#89937e}.proof{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:29px 0;display:grid;grid-template-columns:1fr 1fr 1fr .85fr;gap:35px}.proof>div{padding-left:32px;border-left:1px solid var(--line)}.proof>div:first-child{padding:0;border:0}.proof strong{font:40px/1.1 Georgia,serif;font-weight:400;letter-spacing:-1px}.proof strong span{font:14px var(--sans);margin-left:5px;letter-spacing:0}.proof p{font-size:11px;margin-top:8px}.proof small{font-size:9px;color:#828b7e;display:block;margin-top:5px}.proof .proof-note{font:20px/1.65 var(--serif);position:relative;margin:0;align-self:center}.proof-note>span{position:absolute;right:0;top:2px;color:var(--coral);font-size:43px}.work-section{padding-top:100px;padding-bottom:100px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;margin-bottom:36px}h2{font:500 39px/1.4 var(--serif);letter-spacing:-1px;margin-top:12px}.section-heading>p{font-size:12px;line-height:1.9;color:var(--muted);padding-bottom:4px}.filter-row{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:21px;margin-bottom:31px}.filters{display:flex;gap:9px}.filters button{padding:8px 16px;border-radius:30px;background:transparent;font-size:11px}.filters button.active{background:var(--green);color:white}.filters button span{font-size:9px;opacity:.6;margin-left:7px}.filter-count{color:#8a9286;font-size:10px}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px 25px}.project{padding:0;text-align:left;background:transparent;width:100%;transition:transform .25s}.project[hidden]{display:none}.project:hover{transform:translateY(-4px)}.project-image{height:224px;display:block;position:relative;border-radius:8px;overflow:hidden;background:#e4e9de}.project-image>img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.project:hover .project-image>img{transform:scale(1.035)}.project-type{position:absolute;left:14px;top:14px;font-size:9px;padding:4px 9px;background:#fafbf2ed;border-radius:25px;color:var(--green);line-height:1.5}.play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#fffdf4eb;border-radius:50%;width:43px;height:43px;display:grid;place-items:center;padding-left:3px;font-size:12px;box-shadow:0 3px 15px #0001}.duration{position:absolute;right:13px;bottom:12px;background:#193a30c9;border-radius:4px;color:#fff;font-size:9px;padding:1px 6px;font-family:monospace}.portrait-video{background:#e3e7db}.portrait-video>img{object-fit:contain;object-position:50% 40%;width:47%;margin:auto}.portrait-video:before,.portrait-video:after{position:absolute;content:"+";font-size:33px;color:#b6c4b3;top:41%;left:10%;font-weight:200}.portrait-video:after{left:auto;right:10%}.project-info{display:block;padding-top:17px}.project-meta{display:block;font-size:9px;color:var(--muted);letter-spacing:1px}.project-title{display:flex;align-items:center;justify-content:space-between;font-size:16px;line-height:1.6;margin-top:6px;font-weight:500;gap:10px}.project-title>span{font-size:18px;font-weight:300}.project-description{display:block;font-size:10px;color:#7c867a;line-height:1.9;margin-top:6px}.paper-image{padding:22px 33px;background:#ece8df}.paper-image>img{object-fit:cover;object-position:top;box-shadow:0 8px 16px #29332e17;transform:rotate(-4deg);height:290px}.project:hover .paper-image>img{transform:rotate(-2deg)}.leaflet-image{padding:28px 20px;background:#dce5d6}.leaflet-image>img{object-fit:cover;object-position:left top;transform:rotate(5deg);height:230px;box-shadow:0 8px 15px #203a2d16}.project:hover .leaflet-image>img{transform:rotate(2deg)}.account-image{background:#e9e2d7}.account-image>img{height:270px;object-fit:cover;object-position:top;width:65%;position:absolute;right:-8px;bottom:-40px;transform:rotate(5deg);border:4px solid white;border-radius:15px}.project:hover .account-image>img{transform:rotate(2deg)}.account-decoration{position:absolute;left:22px;top:99px;font:20px/1.15 Georgia,serif;color:#a69374;letter-spacing:-.6px}.campaign-project{grid-column:1/-1;border-radius:8px;display:flex;align-items:center;background:#e8eddc;padding:25px 32px;gap:35px}.campaign-mark{font-size:69px;color:#6d8b60;line-height:1;flex-shrink:0}.campaign-project .project-info{padding:0;flex:1}.campaign-project .project-title{font-size:20px}.campaign-date{font:10px/1.7 Georgia,serif;text-align:right;letter-spacing:1px;border-left:1px solid #c8d3be;padding-left:32px;color:#78916b}.campaign-date strong{font-size:27px;font-weight:400}.work-note{font-size:9px;color:#858e82;margin-top:26px}.about-section{background:#e9eee3;padding:80px 0}.about-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:90px}.about-grid h2{font-size:39px;line-height:1.55;margin-bottom:24px}.about-grid h2 span{color:#64805a}.about-intro{font-size:12px;line-height:2.1;color:#6c7a64;margin-bottom:27px}.capabilities article{display:flex;gap:23px;padding:23px 0;border-bottom:1px solid #ccd7c5}.capabilities article:first-child{padding-top:0}.capabilities article>span{font:12px Georgia,serif;color:#8b9c80;margin-top:7px}.capabilities h3{font-size:15px;font-weight:500;margin-bottom:9px}.capabilities p{color:#74816d;font-size:11px;line-height:1.95}.experience-section{padding:95px 0}.timeline article{display:grid;grid-template-columns:230px 1fr;padding:33px 0;border-top:1px solid var(--line)}.timeline-date{font:12px Georgia,serif;color:#809077;padding-top:4px;letter-spacing:.5px}.job-tag{font-size:10px;color:#73856b}.timeline h3{font-size:19px;line-height:1.6;margin:8px 0 2px;font-weight:500}.job-title{font-size:11px;color:var(--muted);margin:3px 0 13px}.timeline article div>p:last-child{font-size:12px;color:#788471;line-height:2;max-width:740px}.education{border-top:1px solid var(--line);display:grid;grid-template-columns:230px 1fr;padding-top:33px;row-gap:12px;font-size:11px}.education>.eyebrow{grid-row:1/4;color:#7a8a70;font-size:9px}.education p{grid-column:2;color:#708168}.education strong{font-weight:500;color:var(--ink);margin-right:13px}.education p>span{font:10px Georgia,serif;margin-left:20px;color:#89957f}.education .qualification{font-size:10px;margin-top:4px}.education .qualification span{margin:0 10px}.contact-section{background:var(--green);color:#f5f5e9;border-radius:14px;padding:49px 53px 40px}.contact-section>.eyebrow{color:#b6c6a8}.contact-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:60px;margin-top:16px}.contact-grid h2{margin-top:0;font-size:39px;line-height:1.6;position:relative;display:inline-block}.contact-grid h2>span{position:absolute;right:-65px;top:5px;font-family:Georgia,serif;font-size:50px;color:#cdd6ae}.contact-grid>div>p{font-size:11px;color:#b3c5aa;line-height:2;margin-top:20px}.contact-details>a{display:block;padding:8px 0 19px;border-bottom:1px solid #527360;margin-bottom:12px}.contact-details small{display:block;font-size:9px;color:#b8c7ad;letter-spacing:1px;margin-bottom:4px}.contact-details>a>span{display:flex;justify-content:space-between;font-family:Georgia,var(--sans);font-size:20px}.copy-email{border:0;background:transparent;color:#b8c9ac;padding:7px 0;font-size:10px;display:flex;gap:28px;align-items:center}.contact-details .copy-status{font-size:10px;min-height:15px;margin-top:2px;color:#e6edda}.footer{display:flex;justify-content:space-between;align-items:center;padding-top:40px;padding-bottom:35px;gap:20px}.footer .brand{font-size:14px}.footer .brand-icon{width:36px;height:36px;font-size:21px}.footer .brand small{font-size:7px;letter-spacing:1px}.footer>p{text-align:center;font-size:9px;color:#7c8974;line-height:1.9}.footer>p small{font-size:8px}.back-top{font-size:10px;color:#6f8068}
dialog{padding:0;border:0;border-radius:14px;width:min(900px,calc(100vw - 40px));max-height:90vh;background:var(--bg);color:var(--ink);box-shadow:0 40px 130px #071d2d55;overscroll-behavior:contain}dialog::backdrop{background:#112e27b3;backdrop-filter:blur(4px)}.dialog-top{position:sticky;top:0;z-index:5;background:var(--bg);padding:16px 28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:10px;letter-spacing:1px}.close-dialog{border:1px solid #abb8a3;border-radius:20px;padding:5px 13px;background:transparent;font-size:11px;letter-spacing:0}#case-content{padding:28px 35px 38px}.case-tag{font-size:10px;letter-spacing:1px;color:var(--muted)}#case-title{font:500 30px/1.5 var(--serif);margin:9px 0 15px}.case-intro{font-size:13px;line-height:1.95;color:#66755f;max-width:740px}.case-facts{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:24px 0;font-size:11px;border-block:1px solid var(--line);padding:17px 0}.case-facts dt{color:#8b947f;font-size:9px;letter-spacing:1px}.case-facts dd{margin:3px 0 0}.case-media{width:100%;max-height:510px;display:block;border-radius:7px;background:#e8ede1}.case-media video{width:100%;max-height:500px;display:block;background:#152b24;border-radius:7px}.case-media img{margin:0 auto;width:auto;max-width:100%;max-height:510px;object-fit:contain}.case-gallery{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:24px}.case-gallery img{max-height:none;width:100%;height:auto;cursor:zoom-in}.case-gallery figure{margin:0}.case-gallery figcaption{font-size:10px;color:var(--muted);margin-top:10px}.case-subheading{font-size:15px;font-weight:500;margin-top:26px;margin-bottom:10px}.case-body{font-size:12px;color:#63745c;line-height:2}.case-body p+p{margin-top:10px}.source-note{font-size:9px;line-height:1.9;color:#89917e;margin-top:23px}.case-outlink{font-size:12px;display:inline-block;margin-top:20px;border-bottom:1px solid #9fac91}.lightbox{margin-top:20px}.case-gallery a{display:block}
@media(min-width:1500px){.hero{min-height:710px}.hero-visual{min-height:520px}.portrait-frame{height:480px;width:390px}.hero-stamp{right:0}}
@media(max-width:1100px){.wrap{width:calc(100% - 64px)}.hero{gap:20px}.hero-visual{min-height:440px}.portrait-frame{width:300px;height:390px}.hero-stamp{width:99px;height:99px;right:-6px;font-size:12px}.hero h1{font-size:51px}.hero-description{font-size:12px}.hero-foot{font-size:9px}.visual-index{right:-7px}.proof{gap:20px}.proof>div{padding-left:20px}.proof .proof-note{font-size:16px}.proof-note>span{font-size:32px}.project-image{height:190px}.project-title{font-size:14px}.about-grid{gap:45px}.contact-grid{gap:40px}.contact-grid h2{font-size:33px}.contact-details>a>span{font-size:17px}.contact-grid h2>span{right:-40px;font-size:35px}}
@media(max-width:760px){.wrap{width:calc(100% - 40px)}.header{height:82px}.header nav{gap:17px;font-size:11px}.brand{font-size:15px;gap:8px}.brand-icon{width:37px;height:37px;font-size:22px}.brand small{font-size:7px;letter-spacing:1px}.nav-contact{display:none}.hero{grid-template-columns:1fr;padding-top:38px;gap:32px;padding-bottom:40px}.hero-copy{max-width:580px}.hero .eyebrow{font-size:10px}.hero h1{font-size:clamp(43px,8.2vw,60px);letter-spacing:-1px;margin-top:22px;margin-bottom:21px}.hero-description{font-size:12px;line-height:2}.hero-actions{margin-top:24px;gap:25px}.button{padding:12px 21px}.hero-foot{margin-top:24px;font-size:9px}.hero-foot span{margin:0 5px}.hero-visual{min-height:350px;max-width:420px;width:100%;margin:auto}.portrait-frame{height:330px;width:275px}.hero-stamp{right:5%;top:30px;width:91px;height:91px;font-size:11px}.portrait-caption{font-size:10px;left:20px;bottom:17px}.visual-index{right:9px;top:170px;font-size:7px}.orbit{height:350px}.proof{grid-template-columns:1fr 1fr 1fr;gap:10px;padding:24px 0}.proof>div{padding-left:12px}.proof strong{font-size:31px}.proof strong span{font-size:11px}.proof p{font-size:9px;line-height:1.7}.proof small{font-size:7px;line-height:1.7}.proof .proof-note{display:none}.work-section{padding:60px 0}.section-heading{gap:16px;margin-bottom:25px}.section-heading>p{font-size:10px;max-width:150px}.eyebrow{font-size:9px;letter-spacing:1.5px}h2{font-size:29px;margin-top:10px}.filter-row{padding-top:15px;margin-bottom:22px}.filters{gap:3px;flex-wrap:wrap}.filters button{font-size:10px;padding:7px 11px}.filters button span{display:none}.filter-count{display:none}.project-grid{grid-template-columns:1fr 1fr;gap:28px 15px}.project-image{height:175px}.project-type{font-size:8px;left:10px;top:10px;padding:3px 7px}.play{width:34px;height:34px;font-size:10px}.project-title{font-size:13px;align-items:flex-start;line-height:1.7;gap:5px}.project-title>span{font-size:14px}.project-meta{font-size:8px;letter-spacing:0}.project-description{font-size:9px}.project-info{padding-top:12px}.paper-image{padding:19px 18px}.leaflet-image{padding:26px 15px}.account-image>img{width:75%;height:230px}.account-decoration{font-size:13px;left:10px;top:80px}.campaign-project{padding:20px;gap:17px}.campaign-mark{font-size:43px}.campaign-project .project-title{font-size:15px}.campaign-date{display:none}.work-note{font-size:8px;line-height:1.9}.about-section{padding:48px 0}.about-grid{grid-template-columns:1fr;gap:36px}.about-grid h2{font-size:34px;line-height:1.5;margin-bottom:20px}.about-intro{font-size:11px}.capabilities article{padding:19px 0;gap:20px}.capabilities h3{font-size:14px}.capabilities p{font-size:11px}.experience-section{padding:55px 0}.experience-section h2{font-size:27px}.experience-section .section-heading>p{display:none}.timeline article{grid-template-columns:1fr;gap:12px;padding:26px 0}.timeline-date{font-size:11px}.timeline h3{font-size:17px}.timeline article div>p:last-child{font-size:11px}.education{grid-template-columns:1fr;gap:12px;padding-top:25px}.education>.eyebrow{grid-row:auto}.education p{grid-column:1;line-height:2;font-size:10px}.education p>span{display:block;margin-left:0;font-size:9px}.education .qualification span{display:inline;margin:0 8px}.education strong{margin-right:10px}.contact-section{padding:30px 25px 20px;border-radius:10px}.contact-grid{grid-template-columns:1fr;gap:25px}.contact-grid h2{font-size:31px}.contact-grid h2>span{right:-44px;font-size:33px}.contact-grid>div>p{font-size:10px;margin-top:15px}.contact-details>a>span{font-size:19px}.contact-details>a{padding-bottom:13px}.footer{padding-top:30px;padding-bottom:28px;flex-wrap:wrap;gap:22px}.footer>p{order:3;flex-basis:100%;text-align:left;font-size:8px}.footer .brand small{font-size:6px}.back-top{font-size:9px}.dialog-top{padding:13px 18px;font-size:8px}#case-content{padding:22px 20px 30px}#case-title{font-size:24px}.case-intro{font-size:12px}.case-facts{grid-template-columns:1fr;gap:11px;font-size:11px}.case-gallery{grid-template-columns:1fr;gap:25px}.case-media,.case-media video{max-height:430px}.source-note{font-size:9px}}
@media(max-width:390px){.header nav{gap:12px;font-size:10px}.hero h1{font-size:41px}.hero-foot{font-size:8px}.project-grid{grid-template-columns:1fr}.project-image{height:230px}.project-title{font-size:16px}.project-description{font-size:10px}.project-meta{font-size:9px}.campaign-project{grid-column:1}.section-heading>p{display:none}.contact-grid h2{font-size:28px}.contact-grid h2>span{right:-30px;font-size:27px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
