:root{--ink:#202327;--muted:#636b73;--line:#dce0e4;--accent:#285270;--soft:#f6f7f8;--paper:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:76px}body{margin:0;background:#fff;color:var(--ink);font:16px/1.8 'Microsoft YaHei','PingFang SC',sans-serif}a{color:var(--accent);text-decoration:none;text-underline-offset:4px}a:hover{text-decoration:underline}button{font:inherit}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.page-width{max-width:980px;padding-left:34px;padding-right:34px;margin:auto}.skip{position:fixed;top:-100px;background:#fff;padding:12px;z-index:100}.skip:focus{top:0}.site-header{position:sticky;top:0;background:#fffffff5;border-bottom:1px solid var(--line);z-index:20}.site-header nav{height:60px;display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{color:var(--ink);font-weight:600}.site-header nav>div{display:flex;gap:25px;font-size:14px}.identity{padding:38px 0 28px;border-bottom:1px solid var(--line)}h1{font-size:32px;line-height:1.5;font-weight:650;margin:0 0 7px;letter-spacing:.5px}.direction{font-size:15px;color:var(--muted);margin:0 0 13px}.contact{display:flex;flex-wrap:wrap;gap:9px 24px;font-size:14px}.resume-body{padding-top:3px}.resume-body h2{font-size:20px;font-weight:600;line-height:1.5;margin:29px 0 17px;padding-bottom:9px;border-bottom:1px solid var(--line);letter-spacing:.4px}.resume-body h3{font-size:16px;margin:22px 0 9px;font-weight:600;line-height:1.7;display:flex;flex-wrap:wrap;justify-content:space-between;gap:3px 20px}.resume-body h3 time{font-size:14px;font-weight:400;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.resume-body p{font-size:14px;line-height:1.95;margin:7px 0;color:#3e444a}.resume-body strong{font-weight:600;color:var(--ink)}.portfolio{margin-top:46px;padding-top:28px;border-top:2px solid var(--ink)}.portfolio-heading h2{font-size:24px;margin:0}.portfolio-heading p{color:var(--muted);font-size:14px;margin:8px 0 25px}.project-entry{padding:27px 0 30px;border-top:1px solid var(--line)}.project-entry h3{font-size:19px;margin:0 0 5px;font-weight:600}.project-entry .meta{font-size:12px;color:var(--muted);margin:0 0 11px}.project-entry>p{font-size:14px;margin:9px 0 17px}.mini-flow{display:grid;grid-template-columns:1fr 26px 1fr 26px 1fr;align-items:stretch;margin:18px 0}.mini-node{border:1px solid var(--line);padding:13px 15px;border-radius:3px;background:white}.mini-node small{display:block;font-size:11px;color:var(--muted);margin-bottom:3px}.mini-node span{font-size:13px;display:block;line-height:1.7}.flow-arrow{display:flex;align-items:center;justify-content:center;color:#8b939a}.project-links{display:flex;flex-wrap:wrap;gap:12px 25px;font-size:14px}.project-links a{border-bottom:1px solid #a6b9c7}.project-links a:hover{text-decoration:none;border-color:var(--accent)}footer{display:flex;justify-content:space-between;gap:20px;font-size:12px;color:var(--muted);padding-top:28px;padding-bottom:28px;margin-top:35px!important;border-top:1px solid var(--line)}.case-header{padding:35px 0 26px;border-bottom:1px solid var(--line)}.case-header .meta{color:var(--muted);font-size:13px;margin:0 0 10px}.case-header h1{font-size:29px;letter-spacing:0}.case-header .summary{font-size:16px;line-height:1.85;max-width:800px;margin:12px 0 18px}.case-header .scope{font-size:13px;color:var(--muted);margin:10px 0 20px}.case-toc{display:flex;flex-wrap:wrap;gap:10px 23px;padding:19px 0;border-bottom:1px solid var(--line);font-size:13px}.reasoning-section{padding:32px 0 35px;border-bottom:1px solid var(--line)}.reasoning-section h2{font-size:21px;line-height:1.6;margin:0 0 8px;font-weight:600}.reasoning-section>p{font-size:14px;line-height:1.9;margin:7px 0 22px;color:#515962}.diagram{margin:0;padding:24px;background:#fafbfc;border:1px solid var(--line);border-radius:4px}.diagram figcaption{font-size:13px;font-weight:600;margin-bottom:22px}.graph-narrow{max-width:560px;margin:0 auto}.flow-node{padding:14px 18px;background:#fff;border:1px solid #cfd5da;border-radius:3px}.flow-node .node-label{font-size:11px;letter-spacing:.3px;color:var(--muted);margin-bottom:3px}.flow-node strong{display:block;font-size:15px;font-weight:600;line-height:1.65}.flow-node p{font-size:13px;color:#57616a;line-height:1.8;margin:5px 0 0}.connector{display:flex;align-items:center;justify-content:center;gap:9px;font-size:11px;color:#6f7881;height:42px}.connector:before{content:'↓';font-size:23px;line-height:1;color:#8a949d}.decision-node{border-color:#728899;background:#f3f6f8;text-align:center}.fork{display:grid;grid-template-columns:1fr 1fr;gap:24px;position:relative;margin:26px 0 0;padding-top:19px}.fork:before{content:'';position:absolute;top:0;left:25%;right:25%;height:1px;background:#acb6be}.fork:after{content:'';position:absolute;top:-26px;left:50%;height:26px;width:1px;background:#acb6be}.branch{position:relative;min-width:0}.branch:before{content:'↓';position:absolute;top:-27px;left:50%;transform:translateX(-50%);font-size:22px;color:#8a949d}.branch-label{display:block;font-size:11px;color:var(--muted);text-align:center;margin-bottom:7px}.chosen{border:1px solid #6d879a}.not-chosen{border-style:dashed;background:#fcfcfc}.outcome{border-left:3px solid #6d879a}.reflection{margin-top:19px;font-size:14px;padding:15px 0 0;border-top:1px solid var(--line);line-height:1.9}.reflection strong{font-weight:600}.evidence{font-size:12px!important;color:var(--muted)!important;margin-top:16px!important;margin-bottom:0!important}.case-delivery{padding:29px 0}.case-delivery h2{font-size:20px;margin:0 0 14px}.case-delivery ul{padding-left:20px;font-size:14px;line-height:1.9}.case-delivery li{margin:7px 0}.case-delivery .project-links{margin-top:20px}.boundary{font-size:12px;color:var(--muted);margin-top:23px;padding-top:18px;border-top:1px solid var(--line)}
@media(max-width:650px){html{scroll-padding-top:65px}.page-width{padding-left:21px;padding-right:21px}.site-header nav{height:55px;gap:15px}.site-header nav>div{gap:19px;font-size:12px}.brand{font-size:14px}.identity{padding-top:25px;padding-bottom:21px}h1{font-size:28px}.direction{font-size:13px}.contact{font-size:12px;gap:7px 17px}.resume-body h2{font-size:18px;margin-top:25px}.resume-body h3{display:block;font-size:15px}.resume-body h3 time{display:block;font-size:12px;margin-top:4px}.resume-body p{font-size:13px;line-height:1.95}.portfolio{margin-top:34px;padding-top:22px}.portfolio-heading h2{font-size:21px}.project-entry h3{font-size:17px}.project-entry>p{font-size:13px}.mini-flow{grid-template-columns:1fr;gap:0}.flow-arrow{height:25px;font-size:0}.flow-arrow:after{content:'↓';font-size:17px}.mini-node{padding:11px 13px}.project-links{font-size:13px;gap:12px 18px}.case-header{padding:26px 0 20px}.case-header h1{font-size:25px}.case-header .summary{font-size:14px}.case-header .scope{font-size:12px}.case-toc{font-size:12px;gap:8px 15px}.reasoning-section{padding:26px 0}.reasoning-section h2{font-size:19px}.reasoning-section>p{font-size:13px}.diagram{padding:17px 13px}.flow-node{padding:12px 13px}.flow-node strong{font-size:14px}.flow-node p{font-size:12px}.fork{grid-template-columns:1fr;gap:14px;margin-top:14px;padding-top:0}.fork:before,.fork:after,.branch:before{display:none}.branch-label{text-align:left;margin:0 0 6px}.branch-label:before{content:'↳ ';color:#8a949d}.connector{height:36px;font-size:10px}.reflection{font-size:13px}.evidence{font-size:11px!important}.case-delivery li{font-size:13px}footer{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{.site-header,.skip,.contact>a:last-child,.case-toc,footer,.project-links{display:none!important}.page-width{max-width:none;padding:0}.identity{padding-top:0}.resume-body p{font-size:11px;line-height:1.65}.resume-body h2{font-size:16px;margin-top:19px;break-after:avoid}.resume-body h3{font-size:13px;break-after:avoid}.resume-body h3 time{font-size:11px}.portfolio{break-before:page}.project-entry,.flow-node,.diagram{break-inside:avoid}.case-header h1{font-size:24px}}

@font-face{font-family:'Open Sans Local';src:url('/assets/fonts/open-sans-latin-400-normal.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:'Open Sans Local';src:url('/assets/fonts/open-sans-latin-700-normal.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
:root{--ink:#353c3a;--muted:#747d79;--accent:#35695c;--line:#e1e5e2;--soft:#f6f8f6}html{scroll-padding-top:30px}body{background:#e9ebea;font-family:'Open Sans Local','Microsoft YaHei','PingFang SC',sans-serif;color:var(--ink)}.site-sheet{max-width:1140px;background:#fff;margin:40px auto;padding:0 52px;box-shadow:0 1px 7px #26362c19;border:1px solid #dfe3e0;min-height:80vh}.editorial-header{padding-top:39px}.masthead{display:flex;justify-content:space-between;align-items:center;gap:25px;padding-bottom:29px}.overline{font-size:10px;letter-spacing:1.9px;color:#7b8780;margin:0 0 12px}.masthead h1{font-size:34px;line-height:1.5;margin:0 0 5px;letter-spacing:2px;font-weight:700}.masthead h1 a{color:#333e37}.masthead h1 a:hover{text-decoration:none}.site-description{font-size:13px;letter-spacing:.5px;color:#78827c;margin:0}.header-note{font-family:'STSong','SimSun',serif;border-left:1px solid #ccd6ce;padding-left:22px;color:#6b7d6c;font-size:18px;line-height:1.8;min-width:207px}.header-note span{display:block}.editorial-nav{display:flex;gap:31px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:13px;padding:0;align-items:stretch}.editorial-nav a{display:block;padding:15px 0 13px;color:#68726c;border-bottom:2px solid transparent;margin-bottom:-1px}.editorial-nav a:hover,.editorial-nav a[aria-current]{color:var(--accent);text-decoration:none;border-bottom-color:var(--accent)}.resume-layout{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:57px;padding-top:33px}.resume-column{min-width:0}.section-intro{margin-bottom:23px}.section-kicker{font-size:10px;color:#7a8b7e;letter-spacing:1.8px}.section-intro p{font-family:'STSong','SimSun',serif;font-size:21px;margin:7px 0 0;color:#4b5d50}.resume-body{padding:0}.resume-body h2{font-size:19px;border-bottom:1px solid var(--line);padding:0 0 12px;margin:33px 0 22px;font-weight:600;display:flex;align-items:baseline;gap:12px}.resume-body h2:first-child{margin-top:0}.resume-body h2:before{font:12px Georgia,serif;color:#819886;content:attr(data-number)}.resume-body h3{display:block;font-size:15px;line-height:1.8;letter-spacing:0;margin:26px 0 10px}.resume-body h3 time{display:block;font:12px/1.8 'Open Sans Local',sans-serif;color:#819087;margin:3px 0 0;letter-spacing:.3px}.resume-body p{font-size:14px;line-height:1.95;color:#5a615d;margin:9px 0}.resume-body strong{color:#455247;font-weight:600}.resume-sidebar{padding-top:4px;min-width:0}.sidebar-widget{padding-bottom:24px;margin-bottom:26px;border-bottom:1px solid var(--line)}.sidebar-widget:last-child{border:0}.sidebar-widget h2{font-size:12px;letter-spacing:1px;font-weight:600;margin:0 0 16px;color:#516b57}.sidebar-widget p{font-size:13px;line-height:1.95;color:#7a827c;margin:0 0 11px}.reading-nav a{display:flex;gap:14px;align-items:center;font-size:13px;padding:7px 0;color:#737d75}.reading-nav a>span{font:11px Georgia,serif;color:#a0aaa1}.reading-nav a[aria-current]{color:#285c42;font-weight:600}.project-index a{display:block;font-size:13px;line-height:1.7;margin:14px 0;color:#4d6856}.project-index small{display:block;font-size:11px;color:#899187;font-weight:400;margin-top:3px}.contact-widget>a{font-size:12px;display:block;margin:8px 0;color:#6e796f;overflow-wrap:anywhere}.contact-widget .download-link{border:1px solid #b8c5b9;color:#41664a;padding:9px 8px;text-align:center;margin-top:18px;background:#f9fbf8;font-size:12px}.portfolio{margin-top:46px;padding-top:32px;border-top:1px solid #bccabd}.portfolio-heading{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:27px}.portfolio-heading h2{font-family:'STSong','SimSun',serif;font-size:26px;font-weight:500;line-height:1.5;margin:6px 0 0}.portfolio-heading p{font-size:12px;line-height:1.9;color:#7c847e;max-width:365px;margin:0 0 2px}.project-entry{padding:28px 0 31px;margin:0;border-top:1px solid var(--line)}.entry-heading{display:flex;justify-content:space-between;align-items:start;gap:26px}.entry-heading>div{min-width:0}.project-entry h3{font-size:19px;font-weight:500;line-height:1.65;margin:3px 0 9px}.project-entry h3 a{color:#3d6045}.project-entry .meta{font-size:11px;color:#91998f;letter-spacing:.2px;margin:0 0 8px}.project-entry>p{font-size:14px;line-height:1.95;color:#657166;margin:10px 0 17px}.entry-preview{flex:0 0 146px;height:90px;padding:4px;border:1px solid #e2e7df;background:#fff}.entry-preview img{width:100%;height:100%;object-fit:cover;object-position:top;display:block;filter:saturate(.6)}.mini-flow{margin:21px 0}.mini-node{border:0;border-left:2px solid #becfbc;border-radius:0;background:#f5f8f3;padding:12px 15px}.mini-node small{font-size:10px;color:#82957e;letter-spacing:.6px}.mini-node span{font-size:13px;color:#55624f}.flow-arrow{color:#97a48e}.project-links{font-size:12px;gap:15px 28px;margin-top:16px}.project-links a{color:#477148;border-color:#c5d3bf}.editorial-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 0;margin-top:20px!important;color:#899085;font-size:11px;border-top:1px solid var(--line)}.footer-separator{margin:0 10px;color:#c1c8bc}.editorial-footer a{color:#7d8a76}
/* Project essays share the paper frame, with full-width diagrams. */
.case-page .page-width{max-width:none;padding-left:0;padding-right:0}.case-page .editorial-header{padding-top:24px}.case-page .masthead{padding-bottom:18px}.case-page .masthead h1{font-size:22px;letter-spacing:1px}.case-page .overline{font-size:9px;margin-bottom:7px}.case-page .editorial-nav{font-size:12px}.case-page .case-header{padding:32px 0 27px}.case-page .case-header h1{font-family:'STSong','SimSun',serif;font-size:31px;font-weight:500;line-height:1.6;color:#3d5040}.case-header .meta{font-size:12px;color:#8b9787}.case-header .summary{font-size:15px;color:#616c5e;max-width:830px}.case-header .scope{color:#909889;font-size:12px}.case-toc{gap:14px 26px;font-size:12px;background:#f7f9f5;padding:14px 18px;border:0;margin:22px 0 0}.reasoning-section h2{font-size:21px;font-weight:500;color:#435e45}.reasoning-section>p{color:#77806f}.diagram{background:#f8faf6;border-color:#dce4d6;padding:27px;border-radius:0}.diagram figcaption{color:#607958;font-size:12px;font-weight:500;letter-spacing:.6px}.flow-node{border-color:#d0dccc;border-radius:2px;padding:16px 19px}.flow-node .node-label{color:#8a9c7f}.flow-node strong{color:#4e6545;font-weight:500}.flow-node p{color:#7a8571}.decision-node{background:#eef4e9;border-color:#9bb38c}.chosen{border-color:#9bb38c}.not-chosen{background:#fdfefa;border-color:#d9dfd0}.outcome{border-left-color:#a6bd94}.connector,.branch-label{color:#98a38c}.reflection{color:#687960;background:#f6f8f2;border:0;padding:17px 20px}.evidence{color:#96a08c!important}.case-delivery h2{color:#536947}.case-delivery li{color:#78846e}.case-page footer{padding-left:0;padding-right:0}
@media(max-width:1150px){.site-sheet{margin:25px 22px;padding:0 35px}.resume-layout{gap:35px;grid-template-columns:minmax(0,1fr) 195px}.header-note{font-size:17px}}
@media(max-width:800px){.resume-layout{grid-template-columns:1fr;gap:0}.resume-sidebar{grid-row:1;padding:0}.sidebar-inner{display:grid;grid-template-columns:1fr 1fr;gap:0 25px}.sidebar-widget{display:none}.reading-nav{display:flex;flex-wrap:wrap;align-items:center;gap:5px 18px;grid-column:1/-1;margin:0 0 27px;padding-bottom:17px}.reading-nav h2{flex-basis:100%;margin:0 0 5px;font-size:11px}.reading-nav a{font-size:12px;gap:7px;padding:3px 0}.reading-nav a>span{font-size:10px}.section-intro{margin-bottom:22px}.resume-body h3{display:flex;flex-wrap:wrap;align-items:start;justify-content:space-between}.resume-body h3 time{margin:0;font-size:11px}.portfolio-heading{display:block}.portfolio-heading p{margin-top:10px;max-width:none}.header-note{font-size:16px;min-width:180px}.case-page .case-header h1{font-size:27px}}
@media(max-width:560px){body{background:#e9ebea}.site-sheet{margin:12px 10px;padding:0 20px;box-shadow:0 1px 5px #26362c10}.editorial-header{padding-top:25px}.masthead{padding-bottom:21px}.masthead h1{font-size:29px}.overline{font-size:8px;letter-spacing:1.3px;margin-bottom:9px}.site-description{font-size:11px;letter-spacing:0}.header-note{display:none}.editorial-nav{gap:0;justify-content:space-between;font-size:11px}.editorial-nav a{padding:12px 0 10px}.resume-layout{padding-top:22px}.reading-nav{gap:5px 14px}.reading-nav a{font-size:11px}.section-intro p{font-size:19px;line-height:1.6}.resume-body h2{font-size:18px;margin-top:29px;gap:10px}.resume-body h3{display:block;font-size:14px;line-height:1.8;margin-top:22px}.resume-body h3 time{margin-top:4px}.resume-body p{font-size:13px;line-height:1.95}.portfolio{padding-top:25px;margin-top:33px}.portfolio-heading h2{font-size:23px}.portfolio-heading p{font-size:12px}.project-entry{padding:23px 0}.entry-heading{gap:14px}.entry-preview{flex-basis:77px;height:61px;padding:3px;margin-top:6px}.project-entry h3{font-size:16px;line-height:1.7}.project-entry .meta{font-size:10px}.project-entry>p{font-size:13px}.mini-flow{margin:17px 0}.mini-node{padding:11px 13px}.mini-node span{font-size:12px}.project-links{font-size:11px;gap:13px 20px}.editorial-footer{font-size:10px;padding:22px 0;gap:10px}.footer-separator{margin:0 5px}.case-page .case-header h1{font-size:24px}.case-page .case-header{padding-top:23px}.case-header .summary{font-size:14px}.case-header .scope{font-size:11px}.case-toc{font-size:11px;padding:12px;gap:10px}.reasoning-section h2{font-size:18px;line-height:1.8}.reasoning-section>p{font-size:13px}.diagram{padding:16px 11px}.flow-node{padding:13px}.flow-node strong{font-size:14px}.flow-node p{font-size:12px}.reflection{padding:14px;font-size:12px}.case-delivery li{font-size:13px}}
.masthead-contact{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:11px;margin:12px 0 0}.masthead-contact a{color:#68756b}.sidebar-widget p{color:#636e65}.project-index small{color:#6d7a68}.flow-node p{color:#65725b}.reasoning-section>p{color:#66735e}.case-header .scope{color:#73806a}.evidence{color:#718065!important}.case-delivery li{color:#647457}
@media print{body{background:white}.site-sheet{margin:0;border:0;box-shadow:none;padding:0;max-width:none}.editorial-nav,.resume-sidebar,.section-intro,.entry-preview,.editorial-footer,.header-note,.overline{display:none}.editorial-header{padding:0}.masthead{padding-bottom:12px}.resume-layout{display:block;padding:0}.resume-body h2{break-after:avoid}.resume-body h3{break-after:avoid}.portfolio{break-before:page}.diagram{background:white}.case-toc{display:none}}
