:root{color:#263139;font-synthesis:none;--ink:#263139;--muted:#66737b;--line:#dfe5e6;--mint:#d6e9df;--blue:#dde7f0;--radius:22px;--green:#399551;--electric-blue:#0373ff;--orange:#ff7801;background:#f8f9f9;font-family:PingFang SC,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit}img{max-width:100%;display:block}::selection{color:#fff;background:#0373ff}:focus-visible{outline:3px solid var(--electric-blue);outline-offset:5px}button:disabled{cursor:default}.wrap{width:calc(100% - 112px);max-width:1700px;margin-inline:auto}.section{padding-top:126px;padding-bottom:126px}.mono{letter-spacing:.12em;font-family:Arial,sans-serif;font-size:12px}.eyebrow{letter-spacing:.16em;align-items:center;gap:18px;margin:0 0 24px;font-family:Arial,Microsoft YaHei,sans-serif;font-size:12px;font-weight:500;display:flex}.eyebrow>span:first-child:not(.short-line){color:#78858b;letter-spacing:0}.button{border:1px solid #0000;border-radius:100px;justify-content:center;align-items:center;gap:30px;min-height:54px;padding:14px 25px;font-size:14px;font-weight:500;transition:background .25s,transform .25s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button.dark{background:var(--ink);color:#fff}.button.dark:hover{background:#46595d}.button.outline{background:0 0;border-color:#c9d1d2;gap:12px}.button.outline:hover{background:#e6edeb}.icon-button{background:0 0;border:1px solid #d6dede;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:inline-flex}.icon-button:hover{background:#e5edeb}.tags{flex-wrap:wrap;gap:8px;display:flex}.tags>span{color:#627078;border:1px solid #d9e0df;border-radius:30px;padding:6px 12px;font-size:12px;line-height:1.5}.skip-link{z-index:100;background:#fff;padding:15px;position:fixed;top:-80px;left:20px}.skip-link:focus{top:15px}.case-page{padding-top:140px;padding-bottom:64px}.case-page .case-topbar{z-index:3;top:100px}.fallback-page{min-height:100svh;padding-top:190px;padding-bottom:96px}.fallback-page h1{letter-spacing:-.05em;margin:18px 0;font-size:clamp(32px,4vw,64px)}.fallback-page p:not(.eyebrow){color:var(--muted);margin-bottom:32px}@media (width<=680px){.case-page{padding-top:110px}.case-page .case-topbar{top:76px}}.shape-waves{pointer-events:none;background:#fff;width:100%;height:100%;display:block;position:absolute;inset:0}:root{color:#171a18;--paper:#f3f1ee;--ink:#171a18;--ease:cubic-bezier(.16, 1, .3, 1);background:#08130f}html{scroll-padding-top:0}body{-webkit-font-smoothing:antialiased;overflow-x:clip}.home-page,.project-detail{position:relative}.small-label{letter-spacing:.14em;margin:0;font:11px/1.5 Arial,sans-serif}.site-header{z-index:40;pointer-events:none;justify-content:center;display:flex;position:fixed;inset:20px 0 auto}.minimal-nav{color:#171a18;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);pointer-events:auto;background:#ffffffe8;border-radius:9px;align-items:center;gap:18px;padding:7px 10px;display:flex;box-shadow:0 4px 24px #0000000a}.minimal-nav nav{gap:3px;display:flex}.minimal-nav nav a,.back-link{border-radius:6px;padding:10px 19px;font-size:12px;transition:background .25s,color .25s}.minimal-nav nav a.current,.minimal-nav nav a:hover{color:#fff;background:#171a18}.menu-toggle{background:0 0;border:0;flex-direction:column;justify-content:center;gap:5px;width:32px;height:32px;padding:7px;display:flex}.menu-toggle span{background:currentColor;width:18px;height:1.5px;transition:transform .3s}.menu-toggle:hover span:first-child{transform:translate(-2px)}.menu-toggle:hover span:last-child{transform:translate(2px)}.portfolio-hero{place-items:center;height:100svh;display:grid;position:relative}.portfolio-field{z-index:0;position:fixed}.portfolio-hero h1{z-index:1;color:#fff;letter-spacing:.025em;margin:0;font:400 clamp(48px,7vw,118px)/1 Magettas DEMO,Arial,sans-serif;position:relative}.personal-intro,.selected-projects,.portfolio-contact{z-index:2;position:relative}.personal-intro{background:#f0eded;min-height:100svh}.intro-inner{flex-direction:column;justify-content:space-between;gap:96px;min-height:100svh;padding-block:clamp(110px,14vh,180px) clamp(64px,8vh,110px);display:flex}.intro-top{max-width:390px}.intro-top h2{letter-spacing:-.03em;margin:23px 0 20px;font-size:clamp(24px,2vw,34px);font-weight:500}.intro-bio{color:#666865;margin:0 0 27px;font-size:15px;line-height:1.95}.quiet-button{color:#161917;background:#fff;border:1px solid #dfdeda;border-radius:7px;justify-content:center;align-items:center;gap:30px;min-height:47px;padding:13px 19px;font-size:12px;transition:background .35s,color .35s;display:inline-flex}.quiet-button:hover{color:#fff;background:#171a18}.intro-bottom{justify-content:space-between;align-items:end;gap:52px;display:flex}.intro-bottom>p,.intro-statement>p{letter-spacing:-.045em;margin:0;font-size:clamp(28px,3.1vw,54px);font-weight:500;line-height:1.5}.intro-bottom p span{color:#93958f}.intro-statement{text-align:right}.intro-disciplines{color:#747771;margin-top:28px;font-size:12px;display:block}.intro-work-link{align-items:center;gap:14px;margin-top:20px;font-size:12px;display:inline-flex}.selected-projects{background:#e8e5e9;min-height:100svh}.projects-heading{justify-content:space-between;align-items:center;gap:24px;margin-bottom:28px;display:flex}.projects-heading h2{margin:0;font-size:21px;font-weight:500}.projects-heading .small-label{color:#737371}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.project-card{isolation:isolate;background:#fff;border-radius:16px;flex-direction:column;height:clamp(550px,100svh - 184px,940px);display:flex;overflow:hidden}.project-image{flex:1;min-height:0;position:relative;overflow:hidden}.project-image img{object-fit:cover;width:100%;height:100%;transition:transform 1.1s var(--ease)}.project-card:hover .project-image img{transform:scale(1.035)}.project-index{color:#fff;text-shadow:0 1px 12px #0007;font:400 24px/1 Arial,sans-serif;position:absolute;top:22px;left:22px}.project-info{background:#fcfbf8;padding:26px}.project-category{color:#737770;font-size:11px}.project-title{justify-content:space-between;align-items:center;margin-top:15px;display:flex}.project-title h3{letter-spacing:-.04em;margin:0;font:400 clamp(28px,2.3vw,42px)/1.1 Arial,sans-serif}.project-title svg{transition:transform .4s var(--ease)}.project-card:hover .project-title svg{transform:translate(3px,-3px)}.project-info p{color:#737770;margin:14px 0 0;font-size:13px}.portfolio-contact{color:#f0f1ed;background:#101613;min-height:100svh}.contact-inner{flex-direction:column;justify-content:center;min-height:100svh;padding-block:110px 40px;display:flex;position:relative}.portfolio-contact .small-label{color:#929b94}.portfolio-contact h2{letter-spacing:-.035em;margin:34px 0 62px;font-size:clamp(30px,4vw,70px);font-weight:400}.contact-mail-row{flex-wrap:wrap;align-items:center;gap:24px;display:flex}.contact-email{letter-spacing:-.035em;font:400 clamp(22px,3.7vw,64px)/1.3 Arial,sans-serif}.contact-phone{color:#b0bab2;margin-top:28px;font:16px Arial,sans-serif;display:inline-block}.portfolio-contact footer{bottom:35px;letter-spacing:.06em;color:#929d94;border-top:1px solid #333d36;justify-content:space-between;padding-top:24px;font:11px Arial,sans-serif;display:flex;position:absolute;inset-inline:0}.reveal-ready [data-reveal]{opacity:0;transition:opacity .8s var(--ease), transform .8s var(--ease);transition-delay:var(--delay,0s);transform:translateY(30px)}.reveal-ready [data-reveal=scale]{transform:translateY(18px)scale(.95)}.reveal-ready [data-reveal].is-visible,.reveal-ready [data-reveal]:focus-within{opacity:1;transform:none}.reveal-ready .project-card .project-info{opacity:0;transition:opacity .8s var(--ease), transform .8s var(--ease);transition-delay:calc(var(--delay,0s) + .16s);transform:translateY(24px)}.reveal-ready .project-card.is-visible .project-info,.reveal-ready .project-card:focus-within .project-info{opacity:1;transform:none}.project-detail{background:var(--paper)}.detail-hero{isolation:isolate;color:#fff;background:#0b0d0e;flex-direction:column;min-height:126svh;display:flex;position:relative;overflow:hidden}.detail-media{z-index:-2;position:absolute;inset:0}.detail-media img{object-fit:cover;object-position:center;width:100%;height:100%;animation:media-settle 16s var(--ease) forwards;transform:scale(1.07)}.detail-media:after{content:"";background:linear-gradient(#080a0b55 0%,#080a0b44 24%,#080a0b66 70%,#080a0b88 100%),radial-gradient(120% 80% at 50% 42%,#080a0b00 40%,#080a0b55 100%);position:absolute;inset:0}@keyframes media-settle{to{transform:scale(1)}}.detail-hero-body{z-index:2;text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:78svh;padding:130px 24px 36px;display:flex;position:relative}.detail-hero-body .small-label{color:#ffffffbd}.detail-lead{text-shadow:0 1px 20px #0005;max-width:29em;margin:30px 0 54px;font-size:clamp(17px,1.6vw,24px);font-weight:400;line-height:1.65}.quiet-button.on-dark{color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff15;border-color:#fff8}.quiet-button.on-dark:hover{color:#171a18;background:#fff}.detail-wordmark{z-index:1;text-align:center;letter-spacing:-.07em;white-space:nowrap;margin:0 0 18svh;padding-top:6svh;font:400 clamp(70px,20vw,360px)/.85 Arial,sans-serif;position:relative}.detail-wordmark span{color:#ffffffdf;animation:letter-rise 1.1s var(--ease) both;animation-delay:var(--letter-delay,0s);display:inline-block}@keyframes letter-rise{0%{opacity:0;transform:translateY(.34em)}to{opacity:1;transform:none}}.detail-fade{z-index:4;pointer-events:none;background:linear-gradient(180deg, #f3f1ee00 0%, #f3f1ee21 26%, #f3f1ee66 50%, #f3f1eeb5 70%, #f3f1eef0 88%, var(--paper) 100%);height:clamp(200px,34%,430px);position:absolute;inset:auto 0 -1px}.detail-story{padding-block:clamp(64px,11vh,124px) clamp(70px,12vh,140px);scroll-margin-top:96px}.story-grid{grid-template-columns:minmax(170px,.36fr) minmax(0,1fr);gap:clamp(34px,6vw,100px);display:grid}.story-aside{padding-top:6px}.story-rule{transform-origin:0;height:1px;transition:transform 1.1s var(--ease);background:#171a1829}.reveal-ready .story-aside:not(.is-visible) .story-rule{transform:scaleX(0)}.story-number{letter-spacing:-.04em;margin:24px 0 18px;font:400 clamp(36px,3.5vw,64px)/1 Arial,sans-serif;display:block}.story-aside p{color:#777b75;max-width:26ch;margin:8px 0;font-size:12px;line-height:1.7}.story-copy h2{letter-spacing:-.035em;margin:0;font-size:clamp(26px,3.2vw,52px);font-weight:500;line-height:1.3}.story-summary,.stage-body{letter-spacing:-.025em;color:#8a8e87;margin:28px 0 0;font-size:clamp(18px,2vw,32px);line-height:1.6}.line-content{display:block}.line-mask{display:block;overflow:hidden}.line-mask>span{display:block}.lines-prepared .line-mask>span{transition:transform 1.05s var(--ease);transition-delay:var(--line-delay,0s);transform:translateY(103%)}.lines-prepared.lines-visible .line-mask>span{transform:none}.detail-metrics{border-top:1px solid #171a1826;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:40px;padding-top:36px;display:grid}.detail-metrics strong{letter-spacing:-.04em;font:400 clamp(30px,3vw,52px)/1 Arial,sans-serif;display:block}.detail-metrics span{color:#777b75;margin-top:14px;font-size:12px;display:block}.decision-section{border-top:1px solid #171a1817;padding-block:clamp(64px,9vh,108px);scroll-margin-top:96px}.stage-number{margin:20px 0 18px;font:400 24px Arial,sans-serif;display:block}.stage-body{font-size:clamp(18px,1.6vw,25px)}.stage-output{color:#858b80;margin:36px 0 0;font-size:12px}.material-space{border-bottom:1px dashed #171a1826;min-height:180px}.detail-gallery{gap:72px;padding-block:64px;display:grid}.detail-gallery figure{margin:0}.detail-gallery img{border-radius:8px;width:100%;height:auto}.detail-gallery figcaption{color:#858b80;margin-top:16px;font-size:12px}.detail-footer{border-top:1px solid #171a1829;justify-content:space-between;gap:30px;padding-block:60px;font-size:13px;display:flex}.curtain-menu{z-index:80;color:#fff;clip-path:inset(0 0 100%);pointer-events:none;visibility:hidden;background:radial-gradient(125% 90% at 50% 0,#171f19,#0b100d 62%);flex-direction:column;padding:20px clamp(24px,5vw,72px) 40px;transition:clip-path .8s cubic-bezier(.76,0,.24,1),visibility 0s .8s;display:flex;position:fixed;inset:0}.curtain-menu.open{clip-path:inset(0);pointer-events:auto;visibility:visible;transition-delay:0s}.curtain-top{justify-content:center;display:flex}.curtain-top button{color:#fff;background:#ffffff12;border:0;border-radius:7px;padding:16px 22px;font-size:12px}.curtain-menu nav{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:clamp(10px,2vh,24px);display:flex}.curtain-menu nav a{padding:4px 0;display:block;overflow:hidden}.curtain-menu nav a span{transition:transform .85s var(--ease), opacity .35s;font-size:clamp(28px,4.5vw,70px);font-weight:400;display:block;transform:translateY(108%)}.curtain-menu.open nav a span{transition-delay:var(--delay,0s);transform:none}.curtain-menu nav a:hover span{opacity:.5}.curtain-foot{text-align:center;color:#fff6;letter-spacing:.14em;margin:0;font:11px Arial,sans-serif}.toast{z-index:90;color:#fff;opacity:0;pointer-events:none;background:#171a18;border-radius:8px;padding:15px 24px;font-size:13px;transition:opacity .2s,transform .2s;position:fixed;bottom:28px;left:50%;transform:translate(-50%,12px);box-shadow:0 6px 30px #0002}.toast.visible{opacity:1;transform:translate(-50%)}@media (width<=1200px){.wrap{width:calc(100% - 72px)}.project-info{padding:22px}.intro-bottom>p,.intro-statement>p{font-size:34px}}@media (width<=860px){.wrap{width:calc(100% - 40px)}.intro-inner{gap:90px;padding-top:115px}.intro-bottom{flex-direction:column;align-items:start;gap:60px}.intro-statement{text-align:left;align-self:end}.project-grid{grid-template-columns:1fr}.project-card{height:680px}.project-image img{object-position:center}.projects-inner{padding-block:95px 24px}.story-grid{grid-template-columns:1fr;gap:36px}.story-aside{max-width:none}.story-aside p{margin-right:20px;display:inline-block}.detail-wordmark{font-size:20vw}.detail-gallery{gap:40px}}@media (width<=640px){.site-header{top:14px}.minimal-nav{gap:8px;padding:5px 7px}.minimal-nav nav a,.back-link{padding:9px 14px;font-size:11px}.portfolio-hero h1{font-size:clamp(36px,10vw,64px)}.intro-bottom>p,.intro-statement>p{font-size:28px}.intro-disciplines{font-size:10px}.projects-heading{align-items:end}.projects-heading .small-label{letter-spacing:.07em;font-size:9px}.project-card{height:580px}.portfolio-contact h2{margin-bottom:42px;font-size:30px}.contact-email{font-size:clamp(19px,6vw,30px)}.contact-mail-row{gap:14px}.contact-mail-row .icon-button{width:34px;height:34px}.portfolio-contact footer{font-size:9px}.detail-hero-body{padding-top:105px}.detail-lead{max-width:26ch;margin-bottom:40px;font-size:17px}.detail-fade{height:30%}.detail-metrics{gap:12px}.detail-metrics span{font-size:11px;line-height:1.6}.detail-footer{font-size:11px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.reveal-ready [data-reveal],.reveal-ready .project-card .project-info{opacity:1;transform:none}.line-mask>span{transform:none!important}.detail-media img{transform:none}.detail-wordmark span{opacity:1;transform:none}}@font-face{font-family:PingFang SC;src:url(../assets/fonts/pingfang-sc-extralight.woff2)format("woff2");font-style:normal;font-weight:200;font-display:swap}@font-face{font-family:PingFang SC;src:url(../assets/fonts/pingfang-sc-light.woff2)format("woff2");font-style:normal;font-weight:300;font-display:swap}@font-face{font-family:PingFang SC;src:url(../assets/fonts/pingfang-sc-regular.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:PingFang SC;src:url(../assets/fonts/pingfang-sc-medium.woff2)format("woff2");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:PingFang SC;src:url(../assets/fonts/pingfang-sc-bold.woff2)format("woff2");font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:PingFang SC;src:url(../assets/fonts/pingfang-sc-heavy.woff2)format("woff2");font-style:normal;font-weight:800;font-display:swap}@font-face{font-family:YouSheBiaoTiHei;src:url(../assets/fonts/youshe-biaotihei.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Doto;src:url(../assets/fonts/doto-black.woff2)format("woff2");font-style:normal;font-weight:900;font-display:swap}@font-face{font-family:AaMianHuatang;src:url(../assets/fonts/aa-mianhuatang.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:JinzisheTongfang;src:url(../assets/fonts/jinzishe-tongfang.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:HarmonyOS Sans SC;src:url(../assets/fonts/harmonyos-sans-sc-regular.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:HarmonyOS Sans SC;src:url(../assets/fonts/harmonyos-sans-sc-bold.woff2)format("woff2");font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:Roboto;src:url(../assets/fonts/roboto-thin.woff2)format("woff2");font-style:normal;font-weight:100;font-display:swap}@font-face{font-family:Roboto;src:url(../assets/fonts/roboto-light.woff2)format("woff2");font-style:normal;font-weight:300;font-display:swap}@font-face{font-family:Roboto;src:url(../assets/fonts/roboto-regular.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Roboto;src:url(../assets/fonts/roboto-medium.woff2)format("woff2");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:Roboto;src:url(../assets/fonts/roboto-bold.woff2)format("woff2");font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:Roboto;src:url(../assets/fonts/roboto-black.woff2)format("woff2");font-style:normal;font-weight:900;font-display:swap}@font-face{font-family:Magettas DEMO;src:url(../assets/fonts/magettas-demo-regular.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Magettas DEMO;src:url(../assets/fonts/magettas-demo-bold.woff2)format("woff2");font-style:normal;font-weight:700;font-display:swap}:root{--home-paper:#fff;--paper:var(--home-paper);--ink:#111;background:#fff}.home-page{color:var(--ink);font-family:PingFang SC,sans-serif}.portfolio-title-layer{z-index:1;pointer-events:none;place-items:center;display:grid;position:fixed;inset:0}.portfolio-title-layer.is-covered{visibility:hidden}.portfolio-title-composition{width:fit-content;max-width:calc(100% - 40px)}.portfolio-hero h1{letter-spacing:.018em;color:#000;animation:portfolio-arrival 1.25s var(--ease) .2s both;font-size:clamp(96px,14vw,236px);font-weight:700}.portfolio-signature{text-align:right;letter-spacing:.08em;color:#000;animation:portfolio-arrival 1.25s var(--ease) .45s both;margin:clamp(22px,3.3vh,40px) 0 0;padding-right:.08em;font:400 clamp(14px,1.6vw,27px)/1.2 Magettas DEMO,sans-serif}@keyframes portfolio-arrival{0%{opacity:0;filter:blur(7px)}to{opacity:1;filter:blur()}}.personal-intro{background:var(--home-paper);border-radius:0;overflow:clip;box-shadow:0 -24px 44px 24px #fff}.profile-layout{flex-direction:column;min-height:100svh;padding-block:clamp(100px,11vh,146px) 52px;display:flex}.profile-layout h2{letter-spacing:-.055em;margin:0 0 clamp(40px,5.4vh,66px);font-size:clamp(52px,6.2vw,106px);font-weight:700;line-height:1.08}.profile-content{width:min(100%,570px)}.education-list{margin:0;padding:0;list-style:none}.education-list li{grid-template-columns:34px 1fr;column-gap:21px;display:grid;position:relative}.education-list li:first-child{padding-bottom:42px}.education-list li:first-child:after{content:"";background:#c7c7c7;width:1px;position:absolute;top:48px;bottom:14px;left:17px}.education-list img{object-fit:contain;width:34px;height:34px;margin-top:1px}.education-list h3{letter-spacing:-.025em;margin:0 0 14px;font-size:clamp(23px,1.8vw,29px);font-weight:400;line-height:1.25}.education-list p{color:#555;margin:0 0 5px;font-size:16px;font-weight:300;line-height:1.6}.education-list span{letter-spacing:.025em;color:#777;font-size:11px;font-weight:400}.profile-introduction{color:#4d4d4d;max-width:31em;margin:38px 0 48px;font-size:clamp(15px,1.1vw,18px);font-weight:400;line-height:1.9}.profile-introduction strong{color:var(--ink);font-weight:500}.profile-bottom{justify-content:space-between;align-items:center;gap:30px;margin-top:auto;display:flex}.profile-bottom a{align-items:center;gap:20px;padding-block:10px;font-size:16px;font-weight:500;display:inline-flex}.profile-bottom a svg{transition:transform .4s var(--ease)}.profile-resume:hover svg{transform:translate(3px,-3px)}.profile-explore:hover svg{transform:translateY(4px)}.selected-projects{background:var(--home-paper)}.projects-inner{padding-block:96px 64px}.project-card{border:1px solid #ffffffb0;border-radius:14px;box-shadow:0 8px 28px #28392307}.project-info{background:#fbf5ed}.project-card.blue .project-info{background:#eff3fa}.project-card.green .project-info{background:#f4f5e8}.project-title h3{letter-spacing:-.035em;font-family:PingFang SC,sans-serif;font-weight:500}.project-index,.home-page .small-label,.contact-email,.contact-phone,.portfolio-contact footer,.curtain-foot,.small-label{font-family:PingFang SC,sans-serif}.portfolio-contact{background:var(--home-paper);color:var(--ink)}.contact-inner{border-top:1px solid #00000014}.portfolio-contact .small-label,.contact-phone,.portfolio-contact footer{color:#777}.portfolio-contact h2{font-weight:300}.contact-email{font-weight:500}.contact-mail-row .icon-button{color:var(--ink);border-color:#bbb}.contact-mail-row .icon-button:hover{background:#f2f2f2}.portfolio-contact footer{border-color:#00000014}@media (width<=860px){.portfolio-hero h1{font-size:13.2vw}.profile-layout{padding-block:110px 36px}.profile-layout h2{font-size:clamp(48px,7vw,68px)}}@media (width<=640px){.portfolio-hero h1{font-size:13.2vw}.profile-layout{min-height:100svh;padding-top:108px}.profile-layout h2{margin-bottom:42px;font-size:clamp(41px,10.5vw,58px)}.education-list{max-width:100%}.education-list h3{font-size:23px}.education-list p{font-size:14px}.education-list li{gap:16px}.profile-introduction{margin-top:34px;font-size:15px}.profile-bottom a{gap:12px;font-size:14px}.projects-inner{padding-top:82px}}@media (prefers-reduced-motion:reduce){.portfolio-hero h1,.portfolio-signature{opacity:1;filter:none}}.project-detail{--project-accent:#ff7801;--project-deep:#813405;--project-ink:#3b2d25;--project-muted:#8b7161;--project-paper:#fcf8f3;--project-paper-rgb:252 248 243;--project-wash:#f0831510;--project-line:#81340524;color:var(--project-ink);background:var(--project-paper);--paper:var(--project-paper);font-family:PingFang SC,sans-serif}.project-detail.blue{--project-accent:#0373ff;--project-deep:#1f299c;--project-ink:#16215b;--project-muted:#6e769b;--project-paper:#f5f7ff;--project-paper-rgb:245 247 255;--project-wash:#0373ff0a;--project-line:#1f299c24;font-family:HarmonyOS Sans SC,PingFang SC,sans-serif}.project-detail.green{--project-accent:#266533;--project-deep:#266533;--project-ink:#23472c;--project-muted:#7a8b74;--project-paper:#f7f9f0;--project-paper-rgb:247 249 240;--project-wash:#e1dc5326;--project-line:#26653325;font-family:Roboto,PingFang SC,sans-serif}.project-detail ::selection{background:var(--project-accent);color:#fff}.project-detail :focus-visible{outline-color:var(--project-accent)}.project-detail .small-label,.project-detail .story-number,.project-detail .stage-number,.project-detail .detail-metrics strong,.project-detail .detail-footer{font-family:inherit}.project-detail.sand .detail-wordmark{letter-spacing:-.02em;font-family:YouSheBiaoTiHei,PingFang SC,sans-serif;font-size:clamp(66px,17.2vw,330px);font-weight:400;line-height:1}.project-detail.blue .detail-wordmark{letter-spacing:-.035em;font-family:Doto,HarmonyOS Sans SC,sans-serif;font-size:clamp(74px,19vw,350px);font-weight:900;line-height:1}.project-detail.green .detail-wordmark{letter-spacing:.015em;font-family:AaMianHuatang,Roboto,PingFang SC,sans-serif;font-size:clamp(90px,23vw,390px);font-weight:400;line-height:1}.project-detail .detail-fade{background:linear-gradient(180deg, rgb(var(--project-paper-rgb) / 0) 0%, rgb(var(--project-paper-rgb) / .12) 26%, rgb(var(--project-paper-rgb) / .4) 50%, rgb(var(--project-paper-rgb) / .72) 70%, rgb(var(--project-paper-rgb) / .95) 88%, var(--project-paper) 100%)}.project-detail .detail-story{padding-block:clamp(72px,11vh,144px) clamp(84px,12vh,150px)}.project-intro-grid{grid-template-columns:minmax(180px,.32fr) minmax(0,1fr);align-items:start;gap:clamp(42px,7vw,120px);display:grid}.project-intro-heading{padding-top:6px}.project-intro-kicker{color:var(--project-muted);letter-spacing:.09em;margin:0 0 18px;font-size:11px;font-weight:400;line-height:1.6}.project-intro-heading h2{letter-spacing:-.03em;margin:0;font-size:clamp(27px,2.2vw,38px);font-weight:500;line-height:1.5}.project-detail.blue .project-intro-heading h2{font-family:JinzisheTongfang,HarmonyOS Sans SC,sans-serif;font-weight:400}.project-intro-meta{border-top:1px solid var(--project-line);margin-top:28px;padding-top:20px}.project-intro-meta p{color:var(--project-muted);margin:0 0 8px;font-size:12px;line-height:1.75}.project-intro-copy{max-width:44em;padding-top:4px}.project-intro-paragraph{color:var(--project-ink);letter-spacing:0;margin:0;font-size:clamp(19px,1.65vw,28px);font-weight:400;line-height:1.95}.project-intro-paragraph+.project-intro-paragraph{margin-top:22px}.intro-details{margin-top:clamp(34px,4vw,58px)}.intro-details-heading{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:24px;display:flex}.intro-details-heading h3{color:var(--project-deep);margin:0;font-size:17px;font-weight:500;line-height:1.6}.intro-details-heading>p{color:var(--project-muted);margin:0;font-size:11px;line-height:1.7}.intro-details-grid{grid-template-columns:repeat(var(--detail-columns), minmax(0, 1fr));gap:clamp(20px,2.6vw,38px);display:grid}.intro-detail-item{border-top:1px solid var(--project-line);min-width:0;padding-top:20px}.intro-detail-value{color:var(--project-accent);letter-spacing:-.04em;margin:0 0 17px;font-size:clamp(34px,3.3vw,52px);font-weight:300;line-height:1.05}.intro-detail-item h4{margin:0 0 10px;font-size:15px;font-weight:500;line-height:1.7}.intro-detail-note{color:var(--project-muted);margin:0;font-size:13px;line-height:1.85}.project-detail.blue .intro-details-heading h3,.project-detail.blue .intro-detail-item h4{font-weight:700}.chapter-records.page-records{border-top:1px solid var(--project-line);border-bottom:1px solid var(--project-line);background:var(--project-wash);align-items:center;margin:0 0 24px;padding:20px 24px}.page-records .chapter-metrics dd{font-size:34px}.page-records .chapter-metrics>div{gap:8px}.detail-project-logo{width:auto;height:44px;margin-bottom:28px}.project-detail .story-rule,.project-detail .detail-metrics,.project-detail .detail-footer{border-color:var(--project-line)}.project-detail .story-rule{background:var(--project-line)}.project-detail .story-number,.project-detail .detail-metrics strong{color:var(--project-accent)}.project-detail.sand .story-number{color:#d45113}.project-detail.green .detail-metrics strong{color:#f16838}.project-detail .story-aside p,.project-detail .detail-metrics span,.project-detail .story-summary{color:var(--project-muted)}.project-detail .story-copy h2{letter-spacing:-.03em;font-size:clamp(30px,3.1vw,52px);font-weight:500}.project-detail .story-summary{letter-spacing:0;max-width:32em;font-size:clamp(18px,1.45vw,24px);line-height:1.85}.material-chapter{border-top:1px solid var(--project-line);padding-block:clamp(66px,6vw,110px) clamp(70px,8vw,150px);scroll-margin-top:106px}.material-chapter:nth-child(2){background:var(--project-wash)}.material-chapter-heading{grid-template-columns:minmax(170px,.36fr) minmax(0,1fr);gap:clamp(34px,6vw,100px);margin-bottom:clamp(52px,5vw,90px);display:grid}.material-chapter-index{border-top:1px solid var(--project-line);align-self:start;align-items:center;gap:18px;padding-top:23px;display:flex}.material-chapter-index>span{color:var(--project-accent);font-size:30px;font-weight:300;line-height:1}.material-chapter-index>p{letter-spacing:.025em;margin:0;font-size:13px}.material-chapter-copy h2{letter-spacing:-.025em;margin:0;font-size:clamp(25px,2.55vw,42px);font-weight:500;line-height:1.45}.project-detail.blue .material-chapter-copy h2,.project-detail.blue .material-plate-label h3{font-family:JinzisheTongfang,HarmonyOS Sans SC,sans-serif;font-weight:400}.material-chapter-copy>p{max-width:38em;color:var(--project-muted);margin:24px 0 0;font-size:clamp(15px,1.2vw,19px);line-height:1.85}.material-chapter-pages{gap:clamp(50px,5vw,90px);display:grid}.chapter-records{border-top:1px solid var(--project-line);grid-template-columns:minmax(170px,.36fr) minmax(0,1fr);gap:clamp(34px,6vw,100px);margin-top:clamp(40px,4vw,68px);padding-top:32px;display:grid}.chapter-records-title{color:var(--project-muted);margin:0;padding-top:4px;font-size:14px;font-weight:500;line-height:1.7}.chapter-metrics{flex-wrap:wrap;gap:32px clamp(48px,6vw,108px);margin:0;display:flex}.chapter-metrics>div{flex-direction:column-reverse;gap:12px;min-width:140px;display:flex}.chapter-metrics dt{color:var(--project-muted);font-size:13px;line-height:1.7}.chapter-metrics dd{letter-spacing:-.04em;color:var(--project-accent);margin:0;font-size:clamp(32px,3vw,48px);font-weight:400;line-height:1.1}.project-detail.green .chapter-metrics dd{color:#f16838}.material-plate{min-width:0;margin:0}.material-plate-caption{grid-template-columns:minmax(170px,.36fr) minmax(0,1fr) auto;align-items:end;gap:clamp(24px,3.4vw,56px);padding-bottom:24px;display:grid}.material-plate-label{align-items:baseline;gap:14px;display:flex}.material-page-number{color:var(--project-muted);letter-spacing:.08em;font-size:12px}.material-plate-label h3{margin:0;font-size:clamp(17px,1.3vw,23px);font-weight:500;line-height:1.5}.material-page-note{color:var(--project-muted);margin:0;font-size:clamp(13px,1vw,16px);line-height:1.75}.material-view-button{white-space:nowrap;border:0;border-bottom:1px solid var(--project-line);color:var(--project-deep);background:0 0;align-items:center;gap:14px;padding:7px 0;font-size:12px;transition:color .3s,border-color .3s;display:inline-flex}.material-view-button:hover{color:var(--project-accent);border-color:var(--project-accent)}.material-view-button>span{font-size:17px}.material-image-button{border:1px solid var(--project-line);cursor:zoom-in;background:#fff;border-radius:8px;width:100%;padding:0;display:block;overflow:hidden}.material-image-button img{width:100%;max-width:none;height:auto;display:block}.project-detail .detail-footer{padding-block:62px;font-size:14px}.project-detail .detail-footer a{transition:color .3s}.project-detail .detail-footer a:hover{color:var(--project-accent)}.project-page-viewer{background:var(--project-paper);width:calc(100vw - 32px);max-width:none;height:calc(100dvh - 32px);max-height:none;color:var(--project-ink);border:0;border-radius:12px;margin:auto;padding:0;position:fixed;inset:16px;overflow:hidden;box-shadow:0 24px 100px #0003}.project-page-viewer::backdrop{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0b101de0}.project-viewer-toolbar{border-bottom:1px solid var(--project-line);justify-content:space-between;align-items:center;gap:24px;min-height:74px;padding:16px 24px;display:flex}.project-viewer-toolbar p{margin:0;font-size:16px;font-weight:500;line-height:1.6}.project-viewer-toolbar p span{color:var(--project-muted);margin-left:8px;font-size:13px;font-weight:400}.project-viewer-actions{flex-shrink:0;align-items:center;gap:12px;display:flex}.project-viewer-actions button{border:1px solid var(--project-line);min-height:38px;color:var(--project-deep);background:#ffffff80;border-radius:6px;padding:8px 14px;font-size:12px;transition:background .3s}.project-viewer-actions button:hover{background:var(--project-wash)}.project-viewer-scroll{overscroll-behavior:contain;scrollbar-color:var(--project-muted) transparent;-webkit-overflow-scrolling:touch;width:100%;height:calc(100% - 74px);padding:24px;overflow:auto}.project-viewer-scroll img{background:#fff;width:100%;max-width:none;height:auto;display:block}.project-viewer-scroll.reading-size img{width:var(--reading-width)}@media (width<=860px){.intro-details-heading{flex-direction:column;align-items:start;gap:5px}.project-intro-grid{grid-template-columns:1fr;gap:36px}.project-intro-heading .detail-project-logo{margin-bottom:22px}.project-intro-meta{flex-wrap:wrap;gap:6px 24px;margin-top:20px;padding-top:16px;display:flex}.project-intro-meta p{margin:0}.chapter-records{grid-template-columns:1fr;gap:24px}.material-chapter-heading{grid-template-columns:1fr;gap:30px;margin-bottom:44px}.material-chapter-index{padding-top:18px}.material-plate-caption{grid-template-columns:1fr auto;gap:13px 20px;padding-bottom:18px}.material-page-note{grid-area:2/1/auto/-1}.material-view-button{grid-area:1/2}}@media (width<=640px){.intro-details-grid{grid-template-columns:1fr;gap:24px}.intro-detail-item{padding-top:16px}.intro-details-heading{margin-bottom:20px}.intro-detail-note{max-width:32em;font-size:14px}.chapter-records.page-records{grid-template-columns:1fr auto;gap:20px;padding:18px}.page-records .chapter-metrics>div{min-width:0}.project-intro-paragraph{font-size:18px;line-height:1.9}.chapter-metrics{gap:28px 36px}.chapter-metrics>div{min-width:120px}.project-detail .story-copy h2{font-size:30px}.project-detail .story-summary{font-size:17px}.material-chapter{padding-block:55px 66px}.material-image-button{border-radius:5px}.project-page-viewer{border-radius:8px;width:calc(100vw - 16px);height:calc(100dvh - 16px);inset:8px}.project-viewer-toolbar{flex-direction:column;align-items:start;gap:12px;min-height:108px;padding:13px 16px}.project-viewer-toolbar p span{font-size:12px}.project-viewer-actions{justify-content:space-between;width:100%}.project-viewer-actions button{min-height:32px;padding:5px 11px;font-size:11px}.project-viewer-scroll{height:calc(100% - 108px);padding:14px}.project-detail .detail-footer{gap:20px;font-size:12px}}.resume-page{color:#171a18;background:#fff;min-height:100svh;padding:132px 0 64px;font-family:PingFang SC,sans-serif;position:relative}.resume-inner{width:calc(100% - 112px);max-width:850px;margin-inline:auto}.resume-page.is-expanded .resume-inner{max-width:1200px}.resume-heading{animation:resume-arrival .7s var(--ease) both}.resume-heading>p{color:#727570;letter-spacing:.06em;margin:0 0 18px;font-size:12px}.resume-heading h1{letter-spacing:-.04em;margin:0 0 34px;font-size:clamp(42px,5vw,62px);font-weight:500;line-height:1.15}.resume-controls,.resume-footer{justify-content:space-between;align-items:center;gap:24px;display:flex}.resume-controls{margin-bottom:24px}.resume-return{align-items:center;min-height:40px;font-size:13px;font-weight:500;display:inline-flex}.resume-return:hover{text-underline-offset:5px;text-decoration:underline}.resume-zoom{color:#171a18;background:#fff;border:1px solid #dedfdd;border-radius:6px;min-height:40px;padding:9px 16px;font-size:12px;transition:background .25s,border-color .25s}.resume-zoom:hover{background:#f5f5f3;border-color:#bcbfba}.resume-document{overscroll-behavior-x:contain;animation:resume-arrival .85s var(--ease) 80ms both;background:#fff;border:1px solid #ecece9;margin:0;overflow-x:auto}.resume-document img{width:100%;height:auto;display:block}.resume-page.is-expanded .resume-document img{width:1200px;max-width:none}.resume-footer{border-top:1px solid #ecece9;margin-top:28px;padding-top:20px}.resume-footer p{color:#727570;margin:0;font-size:12px;line-height:1.6}@keyframes resume-arrival{0%{opacity:0;filter:blur(4px);transform:translateY(18px)}to{opacity:1;filter:blur();transform:translateY(0)}}@media (width<=640px){.resume-page{padding-block:116px 36px}.resume-inner{width:calc(100% - 40px)}.resume-heading h1{margin-bottom:24px}.resume-controls,.resume-footer{gap:14px}.resume-footer p{max-width:14em;font-size:11px}.resume-return{flex-shrink:0;font-size:12px}}@media (prefers-reduced-motion:reduce){.resume-heading,.resume-document{animation:none}}
