:root{font-family:Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif;color:#293831;background:#f4f1e9;font-synthesis:none;-webkit-font-smoothing:antialiased;--paper: #f4f1e9;--ink: #293831;--jade: #315c4e;--red: #9c4935;--muted: #65705f;--line: #cfcbbd;--serif: "Noto Serif SC", Georgia, "Songti SC", "SimSun", serif;--page: 1240px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;min-width:0}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button:focus-visible,a:focus-visible{outline:2px solid var(--jade);outline-offset:6px}::selection{background:#cad8c9;color:#21392d}.page-width{width:calc(100% - 144px);max-width:var(--page);margin-inline:auto}.section-space{padding-block:74px 82px}.mobile-only{display:none}.skip-link{position:fixed;top:-100px;left:20px;z-index:20;background:var(--jade);color:#fff;padding:12px 20px}.skip-link:focus{top:12px}.site-header{background:var(--paper);position:absolute;inset:0 0 auto;z-index:5}.header-inner{position:relative;display:flex;align-items:center;gap:36px;padding-block:21px 18px;border-bottom:1px solid #a9ac9866}.wordmark{display:flex;align-items:baseline;gap:15px;font:32px/1.3 Georgia,serif;letter-spacing:-1px}.wordmark>span{font:10px/1.4 Noto Sans SC,sans-serif;letter-spacing:2px;color:var(--red)}.navigation{display:flex;gap:34px;margin-left:auto}.navigation a{position:relative;display:flex;align-items:center;min-height:40px;font-size:14px;letter-spacing:2px}.navigation a:after{content:"";position:absolute;left:0;right:2px;bottom:0;height:1px;background:var(--jade);transform:scaleX(0);transform-origin:left;transition:transform .2s}.navigation a:hover:after,.navigation a.active:after{transform:scaleX(1)}.navigation a:hover,.navigation a.active{color:var(--jade)}.github-top{display:grid;place-items:center;min-width:34px;min-height:40px}.github-top:hover{color:var(--red)}.icon-button{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:transparent}.icon-button:hover{border-color:var(--jade);color:var(--jade)}.menu-toggle{display:none}.hero{position:relative;isolation:isolate;min-height:610px;display:flex;align-items:center;padding-top:82px;overflow:hidden}.hero-landscape{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1}.hero-landscape img{width:100%;height:100%;object-fit:cover;object-position:center 52%}.hero-content{padding-block:45px 55px}.greeting{font-family:var(--serif);font-size:19px;letter-spacing:1px;margin:0 0 24px}.greeting:after{content:"";display:block;margin-top:17px;width:27px;height:2px;background:var(--red)}.hero h1{font-family:var(--serif);font-size:clamp(44px,4.35vw,64px);font-weight:600;line-height:1.45;letter-spacing:-1px;margin:0 0 22px;max-width:800px}.hero-description{font-size:15px;line-height:2;letter-spacing:.3px;margin:0 0 30px;color:#535e53;max-width:560px}.hero-actions{display:flex;gap:30px;align-items:center}.primary-button{display:inline-flex;align-items:center;gap:30px;padding:15px 23px;min-height:52px;background:var(--jade);color:#faf9f1;font-size:14px;letter-spacing:1px;transition:background .2s,transform .2s}.primary-button:hover{background:#234c3e;transform:translateY(-2px)}.text-link{display:inline-flex;align-items:center;gap:12px;min-height:40px;padding:5px 0;font-size:14px;border-bottom:1px solid #738273;line-height:1.5}.text-link:hover{color:var(--red);border-bottom-color:var(--red)}.interest-strip{display:flex;align-items:center;justify-content:center;gap:32px;padding-block:18px;border-block:1px solid var(--line);font-family:var(--serif);font-size:13px;letter-spacing:1px}.interest-strip span+span:before{content:"/";color:#899084;margin-right:32px}.eyebrow{font:10px/1.6 Arial,sans-serif;letter-spacing:2.8px;color:var(--red);margin:0 0 11px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;margin-bottom:40px}.section-heading h2,.about h2,.contact h2{font-family:var(--serif);font-size:34px;font-weight:550;line-height:1.5;letter-spacing:1px;margin:0}.section-heading>p{font-size:13px;line-height:1.8;color:var(--muted);margin:0 0 4px}.featured-project{display:grid;grid-template-columns:.82fr 1.45fr;gap:50px;align-items:center;padding-bottom:42px}.project-category{font-size:11px;letter-spacing:1px;color:var(--red);margin:0 0 13px}.featured-copy h3{font-family:var(--serif);font-size:30px;line-height:1.5;font-weight:550;letter-spacing:.5px;margin:0 0 18px}.project-summary{font-size:14px;line-height:2;color:#636e62;margin:0 0 18px;max-width:29em}.plain-tags{list-style:none;padding:0;margin:0;display:flex;gap:14px;flex-wrap:wrap;color:#66735d;font-size:10px;line-height:1.8}.plain-tags li+li:before{content:"·";color:#8c907e;margin-right:14px}.project-link{margin-top:22px;color:var(--jade);font-size:13px}.featured-preview{display:block;min-width:0}.featured-preview figure{margin:0}.featured-preview img{width:100%;height:auto;outline:1px solid #c4c7b8;outline-offset:6px;transition:filter .2s}.featured-preview:hover img{filter:brightness(1.08)}.featured-preview figcaption{display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:10px;color:#69755e;margin-top:17px;line-height:1.7}.featured-preview figcaption span{display:flex;align-items:center;gap:7px;white-space:nowrap;color:#627060}.project-list{border-top:1px solid var(--line)}.project-row{display:grid;grid-template-columns:30px 1.1fr 1.4fr 26px;gap:26px;align-items:center;padding:32px 0;border-bottom:1px solid var(--line);transition:background .2s}.project-row:hover{background:#e9eadd66}.project-number{font:11px/1.7 Georgia,serif;color:#949a8b;align-self:start;padding-top:4px}.project-name>.project-category{font-size:10px;display:block;margin-bottom:8px}.project-name h3{font-family:var(--serif);font-size:24px;line-height:1.6;font-weight:500;margin:0;transition:color .2s}.project-row-copy>p{font-size:13px;line-height:1.95;color:#5f6c59;margin:0 0 11px;max-width:37em}.row-arrow{color:#6f7d6b;transition:transform .2s}.project-row:hover .row-arrow{transform:translate(3px,-3px);color:var(--red)}.project-row:hover h3{color:var(--jade)}.about{background:#ebece3;border-block:1px solid #c9ccbd}.about-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:100px}.about-heading>.eyebrow{margin-bottom:12px}.about-quote{font-family:var(--serif);font-size:39px;line-height:1.75;letter-spacing:1px;margin:40px 0 17px;color:#385548}.about-name{font-family:Georgia,serif;font-size:15px;font-style:italic;color:#7b8875;letter-spacing:.5px}.about-copy>p{font-size:14px;line-height:2.1;color:#59684f;margin:0 0 19px}.about-copy>p.about-lead{font-family:var(--serif);font-size:24px;line-height:1.85;font-weight:500;color:#344c3c;margin-bottom:24px}.interest-list{margin-top:30px;border-top:1px solid #c5c9b9}.interest-list>div{display:grid;grid-template-columns:120px 1fr;gap:20px;padding:20px 0;border-bottom:1px solid #c5c9b9}.interest-list h3{font-family:var(--serif);font-size:15px;font-weight:500;line-height:1.8;margin:0}.interest-list p{font-size:12px;line-height:1.9;margin:0;color:#63715a}.contact{padding-block:68px 72px}.contact-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:100px;align-items:start}.contact-description{font-size:14px;line-height:2;color:#626f59;margin:19px 0 0}.contact-links{border-top:1px solid var(--line);margin-top:8px}.contact-item{display:flex;gap:20px;align-items:center;padding:23px 0;border-bottom:1px solid var(--line)}.contact-item>div{display:flex;flex-direction:column;gap:7px;min-width:0}.contact-item>div>span{font:10px/1.5 Arial,sans-serif;letter-spacing:1px;color:#69765c}.contact-item strong{font-size:16px;font-weight:400;line-height:1.5;overflow-wrap:anywhere}.contact-item>svg:last-child{margin-left:auto}.contact-item:hover{color:var(--jade)}.contact-pending{color:#979e8e}.contact-pending strong{font-size:14px}.contact-pending:hover{color:#979e8e}.site-footer{display:flex;align-items:center;gap:26px;padding:25px 0 30px;border-top:1px solid var(--line)}.footer-name{font:23px/1.4 Georgia,serif}.site-footer>p{font-family:var(--serif);font-size:11px;color:#69765c;margin:0}.site-footer>span{font:10px/1.5 Arial,sans-serif;margin-left:auto;color:#69765c;letter-spacing:.5px}.back-top{display:grid;place-items:center;width:38px;height:38px;color:#65765f;border:1px solid #bcc4b2;border-radius:50%;margin-left:4px}.back-top:hover{border-color:var(--jade);color:var(--jade)}.project-reader{width:min(900px,calc(100vw - 48px));max-height:calc(100dvh - 64px);border:1px solid #c9ccbc;background:#f7f4ec;color:var(--ink);padding:0;overscroll-behavior:contain}.project-reader::backdrop{background:#24392ae0;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.reader-paper{padding:26px 62px 46px}.reader-toolbar{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:42px}.reader-toolbar .text-link{border-bottom:0;font-size:12px;color:#74806d}.reader-toolbar .icon-button{flex-shrink:0}.project-reader h1{font-family:var(--serif);font-size:38px;line-height:1.6;font-weight:550;margin:0 0 18px;text-wrap:balance}.reader-lead{font-size:16px;line-height:2;color:#64715e;margin:0 0 24px}.reader-stack{display:flex;flex-wrap:wrap;gap:10px 24px;font-size:11px;color:#8b917e;margin-bottom:32px}.reader-figure{margin:0 0 32px}.reader-figure img{width:100%;height:auto}.reader-figure figcaption{display:flex;justify-content:space-between;gap:14px;font-size:10px;color:#8d947f;margin-top:10px;line-height:1.8}.reader-figure figcaption a{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;color:var(--jade)}.reader-body h2{font-family:var(--serif);font-size:22px;font-weight:550;line-height:1.7;margin:30px 0 13px}.reader-body p{font-size:15px;line-height:2.2;color:#5f6e59;margin:0 0 19px}.reader-end{border-top:1px solid var(--line);padding-top:22px;margin-top:35px;display:flex;justify-content:space-between;align-items:center;gap:20px}.reader-end>span{font-size:11px;color:#69765c}.reader-end .text-link{font-size:12px}@media(min-width:1700px){.hero{min-height:660px}.hero h1{font-size:66px}.hero-landscape img{object-position:center 58%}}@media(max-width:1199px){.page-width{width:calc(100% - 88px)}.hero{min-height:590px}.hero h1{font-size:52px}.hero-description{font-size:14px}.featured-project{gap:32px;grid-template-columns:.9fr 1.2fr}.featured-copy h3{font-size:27px}.project-summary{font-size:13px}.project-row{gap:20px;grid-template-columns:24px 1.1fr 1.3fr 24px}.project-name h3{font-size:22px}.about-layout,.contact-layout{gap:60px}.about-quote{font-size:33px}.about-copy>p.about-lead{font-size:22px}}@media(max-width:900px){.page-width{width:calc(100% - 64px)}.header-inner{gap:24px}.navigation{gap:23px}.wordmark>span{display:none}.hero{min-height:560px}.hero h1{font-size:46px;max-width:620px}.hero-description{font-size:13px;max-width:480px}.hero-landscape img{object-position:15% center}.greeting{font-size:17px}.featured-project{grid-template-columns:1fr;gap:28px}.featured-copy{max-width:600px}.featured-copy h3{font-size:28px}.project-summary{max-width:40em;font-size:14px}.project-link{margin-top:14px}.featured-preview img{outline-offset:5px}.project-row{grid-template-columns:24px 1fr 24px;gap:20px;padding-block:26px}.project-row-copy{grid-column:2;grid-row:2}.project-row-copy>p{max-width:50em}.project-number{grid-row:1/3}.row-arrow{grid-column:3;grid-row:1/3}.project-name h3{font-size:24px}.project-name>.project-category{margin-bottom:3px}.section-heading>p{font-size:12px;max-width:none;text-align:right}.about-layout,.contact-layout{gap:40px;grid-template-columns:.85fr 1.2fr}.about-quote{font-size:28px}.about-copy>p.about-lead{font-size:20px}.interest-list>div{display:block}.interest-list h3{margin-bottom:5px}.section-space{padding-block:60px 66px}}@media(max-width:640px){.page-width{width:calc(100% - 40px)}.mobile-only{display:block}.header-inner{padding-block:18px 15px;gap:18px;align-items:center}.wordmark{font-size:29px}.wordmark>span{display:block;font-size:8px;letter-spacing:1px;margin-left:-2px}.navigation{display:none}.navigation.is-open{position:absolute;display:flex;top:78px;left:0;right:0;margin:0;background:#f7f4edf7;border:1px solid #c7ccb9;box-shadow:0 7px 20px #465b3510;justify-content:space-between;padding:13px 19px;gap:10px}.navigation a{font-size:13px;min-height:38px}.github-top{margin-left:auto;min-width:26px}.github-top svg{width:21px}.menu-toggle{display:grid;width:38px;height:38px}.hero{display:flex;flex-direction:column;align-items:stretch;min-height:0;padding-top:126px}.hero-content{padding:0}.greeting{font-size:16px;margin-bottom:19px}.greeting:after{margin-top:15px;width:22px;height:1px}.hero h1{font-size:35px;line-height:1.65;letter-spacing:-.8px;margin-bottom:20px;max-width:none}.hero-description{font-size:13px;line-height:2.05;letter-spacing:.1px;max-width:none;margin-bottom:25px}.hero-actions{gap:24px}.primary-button{font-size:12px;min-height:48px;padding:13px 17px;gap:20px}.primary-button svg{width:17px}.hero-actions .text-link{font-size:12px;gap:9px}.hero-landscape{position:relative;inset:auto;order:2;height:240px;width:100%;margin-top:5px;z-index:-1}.hero-landscape img{height:100%;width:100%;object-fit:cover;object-position:80% 50%}.interest-strip{padding-block:16px;font-size:11px;letter-spacing:.4px;gap:18px}.interest-strip span+span:before{margin-right:18px}.section-space{padding-block:42px 48px}.section-heading{display:block;margin-bottom:30px}.eyebrow{font-size:8px;letter-spacing:2.4px;margin-bottom:10px}.section-heading h2,.about h2,.contact h2{font-size:29px;line-height:1.6}.section-heading>p{font-size:12px;max-width:none;text-align:left;line-height:1.9;margin:14px 0 0}.featured-project{gap:27px;padding-bottom:30px}.project-category{font-size:10px;margin-bottom:10px}.featured-copy h3{font-size:25px;line-height:1.6;margin-bottom:14px}.project-summary{font-size:13px;line-height:2;margin-bottom:15px}.plain-tags{font-size:10px;gap:11px}.plain-tags li+li:before{margin-right:11px}.project-link{font-size:12px;margin-top:17px}.featured-preview img{outline-offset:4px}.featured-preview figcaption{font-size:8px;margin-top:13px;gap:10px}.featured-preview figcaption span{gap:4px}.project-row{grid-template-columns:18px 1fr 20px;gap:12px 13px;padding-block:25px}.project-number{font-size:10px;padding-top:1px}.project-name>.project-category{font-size:9px;margin-bottom:5px}.project-name h3{font-size:22px;line-height:1.6}.project-row-copy>p{font-size:12px;line-height:2;margin-bottom:12px}.row-arrow{width:20px;align-self:start;margin-top:24px}.about-layout,.contact-layout{display:block}.about-quote{font-size:30px;line-height:1.8;letter-spacing:.5px;margin:26px 0 13px}.about-name{font-size:14px}.about-copy{margin-top:35px}.about-copy>p.about-lead{font-size:21px;line-height:1.85;margin-bottom:20px}.about-copy>p{font-size:13px;line-height:2.15;margin-bottom:19px}.interest-list{margin-top:27px}.interest-list>div{display:grid;grid-template-columns:96px 1fr;gap:15px;padding-block:18px}.interest-list h3{font-size:13px;margin:0}.interest-list p{font-size:11px;line-height:1.95}.contact-description{font-size:13px;line-height:2;margin-top:17px}.contact-links{margin-top:28px}.contact-item{gap:18px;padding-block:21px}.contact-item strong{font-size:15px}.contact-item>div>span{font-size:9px}.contact-pending strong{font-size:13px}.site-footer{gap:12px;padding-block:22px 25px;flex-wrap:wrap}.footer-name{font-size:23px}.site-footer>p{font-size:10px;margin-left:5px}.site-footer>span{order:4;width:100%;font-size:9px;margin-left:0;margin-top:2px}.back-top{width:35px;height:35px;margin-left:auto}.project-reader{width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:0;border:0}.reader-paper{padding:20px 24px 36px}.reader-toolbar{margin-bottom:32px}.project-reader h1{font-size:28px;line-height:1.6}.reader-lead{font-size:15px;line-height:2;margin-bottom:20px}.reader-stack{font-size:10px;gap:10px 18px;margin-bottom:27px}.reader-body h2{font-size:22px;margin-top:28px}.reader-body p{font-size:15px;line-height:2.2;margin-bottom:20px}.reader-end>span{font-size:10px}.reader-figure{margin-bottom:26px}.reader-figure figcaption{font-size:9px}.reader-end .text-link{font-size:11px}}@media(max-width:374px){.hero h1{font-size:30px;letter-spacing:-.8px}.hero-description{font-size:12px}.wordmark>span{display:none}.hero-landscape{height:210px}.hero-actions{gap:20px}.interest-strip{font-size:10px;gap:14px}.interest-strip span+span:before{margin-right:14px}.interest-list>div{display:block}.interest-list h3{margin-bottom:5px}.project-reader h1{font-size:25px}.reader-paper{padding-inline:21px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
