*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;color:#202420;background:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #709d82;outline-offset:5px}header{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:0 6%;height:76px;background:#ffffffed;backdrop-filter:blur(18px);border-bottom:1px solid #eee}.brand{font-size:23px;font-weight:650;letter-spacing:2px}.brand span{margin-left:16px;font-size:13px;letter-spacing:0;font-weight:400;color:#6c726e}nav{display:flex;align-items:center;gap:30px;font-size:14px}nav button{border:0;background:none;padding:8px}.resume{background:#eff2ef;padding:10px 17px;border-radius:30px}.hero{position:relative;min-height:710px;max-height:960px;height:calc(100svh - 76px);max-width:1500px;margin:auto;display:grid;grid-template-columns:1fr 1fr;padding:60px 8% 70px;overflow:hidden}.hero-copy{position:relative;z-index:2;align-self:center}.eyebrow{font-size:14px;font-weight:500;letter-spacing:.07em;color:#68796d;margin:0 0 24px}h1{font-size:clamp(52px,5.8vw,85px);letter-spacing:-.055em;line-height:1.24;margin:0 0 26px;font-weight:650}h2{font-size:clamp(34px,4vw,54px);line-height:1.35;letter-spacing:-.045em;margin:0;font-weight:600}.intro{font-size:18px;line-height:1.85;color:#6a706b;margin:0 0 32px}.primary{display:inline-flex;background:#204d3c;color:white;border-radius:30px;padding:15px 25px;font-size:15px;transition:background .2s,transform .2s}.primary:hover{background:#32654e;transform:translateY(-2px)}.text-link{margin-left:22px;font-size:14px;color:#536d5c}.portrait{position:relative;align-self:stretch;min-height:550px}.portrait img{position:absolute;height:112%;width:120%;max-width:none;left:-7%;bottom:-12%;object-fit:contain;object-position:center bottom}.portrait-note{position:absolute;bottom:24px;right:-10px;background:#ffffffce;backdrop-filter:blur(10px);border:1px solid #e6ebe3;padding:17px 23px;border-radius:16px;box-shadow:0 10px 35px #19302408;font-size:14px}.portrait-note small{display:block;color:#7b837c;font-size:12px;margin-top:7px}.hero-bottom{position:absolute;bottom:22px;left:8%;right:8%;display:flex;justify-content:space-between;color:#858b85;font-size:12px}.hero-bottom span:last-child{letter-spacing:2px}.section{padding:100px max(6%,calc((100vw - 1220px)/2));}.work{background:#f5f6f5}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:42px;gap:35px}.section-heading>p{color:#747a75;font-size:16px;line-height:1.8;margin-bottom:7px}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.project{position:relative;border:0;padding:36px;text-align:left;border-radius:26px;min-height:390px;overflow:hidden;background:white;transition:transform .35s,box-shadow .35s}.project:hover{transform:translateY(-6px);box-shadow:0 20px 45px #18322513}.project .org{font-size:13px;color:#6e756e;display:block;margin-bottom:14px}.project h3{font-size:29px;line-height:1.35;letter-spacing:-.025em;margin:0;position:relative;z-index:2}.project .desc{font-size:15px;line-height:1.7;max-width:350px;color:#707770}.project .plus{position:absolute;bottom:25px;right:26px;border-radius:50%;width:35px;height:35px;display:grid;place-items:center;background:#ffffffb8;color:#293c30;font-size:24px;transition:transform .3s}.project:hover .plus{transform:rotate(90deg)}.project.feature{background:#163e31;color:#fff}.project.feature .org,.project.feature .desc{color:#b6c9bc}.visual{height:147px;margin-top:27px;display:flex;align-items:center;position:relative}.numbers{display:flex;gap:24px;align-items:center}.numbers strong{font-size:62px;letter-spacing:-4px;font-weight:500}.numbers small{display:block;font-size:12px;color:#b6c9bc;margin-top:6px;letter-spacing:0}.numbers .connector{width:45px;height:1px;background:#aac4b2}.logic{display:flex;align-items:center;gap:12px;width:100%;justify-content:center}.logic span{padding:17px 15px;border:1px solid #d6ded6;border-radius:14px;background:#f7f9f7;font-size:14px;box-shadow:0 8px 20px #36523c06}.logic i{width:20px;height:1px;background:#c1ccc1}.project.rules{background:#e8eee8}.rule-tree{display:flex;align-items:center;gap:28px;width:100%;justify-content:center}.rule-tree b{font-size:15px;font-weight:500;padding:18px 28px;border:1px solid #b1c4b1;border-radius:12px;background:#f8fbf7}.rule-tree div{display:grid;gap:12px}.rule-tree span{font-size:13px;display:block;padding:9px 20px;background:white;border-radius:9px}.project.marketing{background:#ebe9f2}.metric{font-size:75px;font-weight:600;letter-spacing:-5px;color:#625b7b}.metric small{font-size:14px;letter-spacing:0;margin-left:17px;font-weight:400}.project.warm{background:#f1eae1}.warm-stat{display:flex;align-items:center;gap:30px}.warm-stat strong{font-size:51px;font-weight:500;letter-spacing:-2px}.warm-stat small{display:block;font-size:13px;letter-spacing:0;color:#827566;margin-top:8px}.research-data{display:flex;gap:12px;align-items:flex-end;height:100px;width:75%}.research-data span{flex:1;background:#d9e4eb;border-radius:5px 5px 0 0}.research-data span:nth-child(2){height:60%}.research-data span:nth-child(3){height:80%}.research-data span:nth-child(4){height:100%;background:#4e7088}.research-data span:nth-child(1){height:35%}.research-label{position:absolute;right:20px;bottom:10px;background:white;padding:12px;border-radius:12px;font-size:20px;color:#4e7088}.approach{text-align:center;padding-top:130px;padding-bottom:130px}.approach h2{font-size:clamp(38px,5vw,67px);line-height:1.5}.approach h2 span{color:#427657}.approach>p:last-child{font-size:17px;line-height:1.9;color:#747a75;margin-top:30px}.journey{background:#f7f8f7}.timeline-item{display:grid;grid-template-columns:150px 1fr 1.3fr;gap:35px;padding:29px 0;border-top:1px solid #dfe4df;align-items:center}.timeline-item .year{font-size:14px;color:#8a928a}.timeline-item h3{font-size:20px;font-weight:500;margin:0 0 7px}.timeline-item small{font-size:13px;color:#8a928a}.timeline-item p{font-size:15px;line-height:1.8;color:#727b72;margin:0}.education{border-top:1px solid #dfe4df;padding-top:30px;display:flex;justify-content:space-between;gap:30px;font-size:14px;color:#727b72;line-height:1.8}footer{padding:85px 8% 24px;text-align:center}footer>p{font-size:32px;line-height:1.55;letter-spacing:-.03em}footer>div{display:flex;justify-content:space-between;border-top:1px solid #eee;margin-top:80px;padding-top:23px;color:#929792;font-size:12px}dialog{border:0;border-radius:26px;width:min(960px,94vw);max-height:90svh;padding:0;overflow:auto;color:#222923;box-shadow:0 40px 100px #0003}dialog::backdrop{background:#11211985;backdrop-filter:blur(10px)}.close{position:sticky;top:18px;float:right;margin:18px 20px -60px 0;z-index:5;width:40px;height:40px;border:0;border-radius:50%;background:#e8eee8;font-size:28px;color:#344d3c}body:has(dialog[open]){overflow:hidden}.detail-head{padding:65px 65px 45px;background:#f1f5f1}.detail-head h2{max-width:740px;font-size:43px}.detail-head>p:last-child{font-size:17px;color:#667167;line-height:1.8}.detail-body{padding:35px 65px 55px}.detail-body h3{font-size:24px;margin:32px 0 15px}.detail-body p{font-size:16px;line-height:1.95;color:#5c675e}.detail-stats{display:flex;gap:30px;padding:28px 0;border-bottom:1px solid #e3e8e3}.detail-stats strong{font-size:34px;font-weight:550;display:block}.detail-stats span{font-size:13px;color:#788179;display:block;margin-top:7px}.steps{display:flex;gap:8px;flex-wrap:wrap;margin:25px 0}.steps button{border:1px solid #d9e3da;border-radius:24px;background:white;padding:11px 18px;font-size:14px}.steps button.active{background:#204d3c;color:white;border-color:#204d3c}.step-panel{background:#f3f6f2;padding:24px 28px;border-radius:18px;min-height:140px}.step-panel h4{font-size:19px;margin:0 0 10px}.step-panel p{margin:0}.detail-body details{border-bottom:1px solid #e3e8e3;padding:18px 0}.detail-body summary{cursor:pointer;font-size:17px;line-height:1.6}.detail-body .note{font-size:13px;color:#869087}.next-project{margin-top:28px;border:0;background:#204d3c;color:white;border-radius:24px;padding:13px 20px}.reveal{animation:enter .6s both}@keyframes enter{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media(min-width:1600px){.hero{padding-left:100px;padding-right:100px}}@media(max-width:800px){header{height:64px;padding:0 5%}.brand span{display:none}nav{gap:13px;font-size:12px}.resume{padding:8px 11px}.hero{height:auto;max-height:none;min-height:0;padding:55px 7% 52px;grid-template-columns:1fr}.hero h1{font-size:54px}.intro{font-size:16px}.portrait{height:460px;min-height:0;margin-top:15px}.portrait img{height:108%;width:100%;left:0;bottom:0}.portrait-note{bottom:35px;right:0}.hero-bottom{left:7%;right:7%;font-size:10px}.hero-bottom span:last-child{display:none}.section{padding:65px 6%}.section-heading{display:block;margin-bottom:30px}.section-heading>p{margin-top:22px;font-size:15px}.project-grid{gap:18px;grid-template-columns:1fr}.project{min-height:355px;padding:28px}.project h3{font-size:27px}.numbers strong{font-size:57px}.approach h2{font-size:37px}.timeline-item{grid-template-columns:95px 1fr;gap:16px}.timeline-item p{grid-column:2}.education{flex-direction:column}.detail-head{padding:64px 25px 25px}.detail-head h2{font-size:31px}.detail-body{padding:15px 25px 35px}.detail-stats{gap:20px;flex-wrap:wrap}.detail-stats strong{font-size:29px}.text-link{margin-left:12px;font-size:13px}footer>p{font-size:27px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
.numbers{gap:18px;width:100%}.numbers strong{font-size:clamp(38px,4vw,58px);letter-spacing:-2px}.numbers .connector{width:24px;flex-shrink:0}.numbers small{max-width:120px}.rule-tree{gap:12px}.rule-tree b{padding:16px}.project .visual{padding-right:5px}html[lang=en] .rule-tree{gap:8px}html[lang=en] .rule-tree b{padding:12px;font-size:13px}html[lang=en] .rule-tree span{padding:9px 12px;font-size:12px}@media(max-width:800px){.numbers strong{font-size:46px}}
