/* He Fa, September 2026. Editorial layer; archival media and specialized viewers retain their own styles. */
:root{--pf-paper:#f4f2ea;--pf-ink:#252a23;--pf-muted:#64695d;--pf-line:#c8ccbd;--pf-accent:#5b6646}
html{scroll-padding-top:90px;scroll-behavior:smooth}.portfolio{background:var(--pf-paper);color:var(--pf-ink);font-family:Geist,Arial,"PingFang SC","Microsoft YaHei",sans-serif;font-size:16px;line-height:1.75}.portfolio *{box-sizing:border-box}.portfolio a{color:inherit;text-underline-offset:5px}.portfolio button{font:inherit}.portfolio :focus-visible{outline:3px solid #687949;outline-offset:5px}.portfolio [hidden]{display:none!important}.portfolio main{overflow:hidden}.pf-skip{position:fixed;left:20px;top:-100px;z-index:1000;background:var(--pf-ink);color:white!important;padding:12px}.pf-skip:focus{top:12px}.pf-header{height:84px;padding:0 4.5vw;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--pf-line);background:var(--pf-paper);position:relative;z-index:50}.pf-logo{font-size:24px;letter-spacing:.05em;text-decoration:none;font-weight:600;white-space:nowrap}.pf-logo span{font-size:13px;margin-left:12px;letter-spacing:.11em;font-weight:450}.portfolio .desktop-nav{position:static;display:flex;align-items:center;gap:28px;color:var(--pf-ink);background:transparent}.portfolio .desktop-nav a{text-decoration:none;font-size:14px}.portfolio .desktop-nav a.current{border-bottom:1px solid}.pf-language{padding-left:23px;border-left:1px solid var(--pf-line)}.portfolio .menu-button{display:none}.pf-kicker{font-size:11px!important;letter-spacing:.14em;text-transform:uppercase;color:var(--pf-muted);font-weight:500;margin:0 0 22px!important}.pf-home-hero{padding:75px 4.5vw 0}.pf-home-title{display:grid;grid-template-columns:1.4fr 1fr;column-gap:8vw;padding-bottom:50px;align-items:end}.pf-home-title .pf-kicker{grid-column:1/-1}.pf-home-title h1{font-family:"Songti SC","Noto Serif CJK SC",Georgia,serif;font-size:clamp(42px,4.8vw,72px);line-height:1.17;letter-spacing:-.035em;font-weight:450;margin:0;grid-row:2/4}.pf-home-title>p:not(.pf-kicker){font-size:17px;max-width:36em;margin:0 0 18px}.pf-action{display:inline-block;font-size:14px;font-weight:550;text-decoration:none;border-bottom:1px solid var(--pf-ink);padding:4px 0;margin:12px 24px 0 0;justify-self:start}.pf-home-art{display:block;text-decoration:none}.pf-home-art img{width:100%;height:auto;display:block;aspect-ratio:1.77;object-fit:contain;background:#141a13}.pf-home-art>span{display:flex;justify-content:space-between;padding:12px 0;color:var(--pf-muted);font-size:12px}.pf-section{margin:0 4.5vw;padding:76px 0;border-bottom:1px solid var(--pf-line)}.pf-section-title{max-width:850px;margin-bottom:40px}.portfolio .pf-section h2{font-family:"Songti SC",Georgia,serif;font-weight:450;font-size:clamp(26px,3vw,43px);line-height:1.4;letter-spacing:-.025em;margin:0 0 22px}.pf-section-title>p:not(.pf-kicker){max-width:620px;margin:0}.pf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:55px 32px}.pf-work>a{display:block;text-decoration:none}.pf-image{position:relative;aspect-ratio:1.5;background:#e6e8de;overflow:hidden}.pf-image img{display:block;width:100%;height:100%;object-fit:contain;transition:transform .45s}.pf-work a:hover .pf-image img{transform:scale(1.018)}.pf-image-arrow{position:absolute;bottom:12px;right:12px;background:var(--pf-paper);width:34px;height:34px;display:grid;place-items:center;border-radius:50%;font-size:20px}.pf-card-meta{display:flex;justify-content:space-between;gap:22px;font-size:11px;color:var(--pf-muted);margin-top:15px;line-height:1.6}.pf-card-meta>span:last-child{text-align:right;max-width:78%}.pf-work h3{font-size:23px;font-weight:500;line-height:1.4;margin:11px 0 7px}.pf-work p{font-size:14px;color:var(--pf-muted);max-width:42em;margin:0}.pf-three{grid-template-columns:repeat(3,minmax(0,1fr))}.pf-three h3{font-size:20px}.pf-collab{background:#eceee4;margin:0;padding:76px 4.5vw}.pf-reading-entry{display:grid;grid-template-columns:1fr 1fr;gap:8vw}.pf-reading-entry p{max-width:650px;margin:0 0 20px}.pf-now{max-width:1000px;padding-bottom:90px}.pf-heading{padding:75px 4.5vw 50px;max-width:1300px}.pf-heading h1{font-family:"Songti SC",Georgia,serif;font-weight:450;font-size:clamp(40px,5.5vw,76px);line-height:1.25;letter-spacing:-.04em;margin:0 0 22px}.pf-deck{font-size:clamp(18px,2vw,25px);line-height:1.8;max-width:850px;margin:0}.pf-project-image{margin:0 4.5vw}.pf-project-image img{display:block;width:100%;height:auto;max-height:80vh;object-fit:contain;background:#e5e8de}.pf-project-image figcaption{font-size:12px;color:var(--pf-muted);padding:12px 0;max-width:1000px}.pf-project-orientation{margin:25px 4.5vw 0;padding:20px 0;display:flex;gap:35px;border-top:1px solid var(--pf-line);border-bottom:1px solid var(--pf-line)}.pf-project-orientation p{margin:0!important;font-size:14px}.pf-essay{max-width:860px;margin-left:auto;margin-right:auto;border-bottom:0;padding:65px 25px}.pf-essay>p{font-size:17px;line-height:1.95;margin:0 0 24px}.pf-process{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:32px;padding:0;margin:35px 0 0}.pf-process li{padding:20px 0;border-top:1px solid var(--pf-line)}.pf-process b{font-family:Georgia,serif;font-size:30px;color:var(--pf-accent);font-weight:400}.pf-process h3{font-size:19px;font-weight:500;margin:9px 0}.pf-process p{font-size:14px;margin:0;color:var(--pf-muted)}.pf-gallery{display:grid;grid-template-columns:1fr 1fr;gap:24px}.pf-gallery figure{margin:0}.pf-gallery img{width:100%;height:auto;display:block}.pf-gallery figcaption,.pf-caption{font-size:12px!important;color:var(--pf-muted);line-height:1.7;padding-top:12px}.pf-sources{border-top:1px solid var(--pf-line);margin:32px 0 0;padding-top:20px;font-size:14px;line-height:1.8}.pf-sources summary{cursor:pointer;font-weight:550}.pf-sources li{margin:12px 0}.pf-sources dt{font-weight:600;margin-top:12px}.pf-sources dd{margin:0}.pf-related-grid{display:grid;grid-template-columns:1fr 1fr;gap:6vw}.pf-related-grid a{font-size:25px;text-decoration:none}.pf-related-grid p{font-size:14px;color:var(--pf-muted);max-width:450px}.pf-filters{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 16px}.pf-filters button{border:1px solid var(--pf-line);background:transparent;padding:8px 17px;cursor:pointer;font-size:13px}.pf-filters button[aria-pressed=true]{color:var(--pf-paper);background:var(--pf-ink);border-color:var(--pf-ink)}.pf-filter-status{font-size:12px;color:var(--pf-muted);min-height:24px;margin-bottom:25px}.pf-index{padding-top:10px}.pf-inline-links{display:flex;flex-wrap:wrap;gap:22px}.portfolio main>.pf-inline-links{padding:0 4.5vw 25px}.pf-inline-links a{font-size:14px}.pf-writing-intro{padding-top:0;margin-left:calc(4.5vw - 25px);margin-right:auto}.pf-bibliography{padding-top:0}.pf-bibliography article{display:grid;grid-template-columns:190px 1fr;gap:40px;padding:40px 0;border-top:1px solid var(--pf-line)}.pf-bib-date{font-size:15px}.pf-bib-date span{font-size:12px;color:var(--pf-muted)}.portfolio .pf-bibliography h2{font-family:inherit;font-size:25px;line-height:1.5;margin:0 0 18px}.pf-bibliography h2 a{text-decoration:none}.pf-bibliography article>div:last-child{max-width:800px}.pf-bibliography p{font-size:15px;margin:0 0 16px}.pf-contact-lead{padding-top:0}.pf-mail{font-size:clamp(21px,3.7vw,53px);display:inline-block;text-decoration:none;border-bottom:1px solid;margin:30px 0 15px;overflow-wrap:anywhere}.pf-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px 8vw}.pf-contact-grid p{max-width:550px}.pf-footer{padding:60px 4.5vw 28px;display:grid;grid-template-columns:1fr 1fr;gap:35px;border-top:1px solid var(--pf-line);background:#e9ecdf;font-size:14px}.pf-footer p{font-size:13px;color:var(--pf-muted);margin:18px 0 0}.pf-footer small{grid-column:1/-1;font-size:10px;color:var(--pf-muted);padding-top:20px}.pf-footer>div:nth-child(2){line-height:2.3}.portfolio .section-pad{padding-left:4.5vw;padding-right:4.5vw}.portfolio .project-intro{background:transparent;padding-top:50px;padding-bottom:50px}.portfolio .project-facts{color:var(--pf-muted)}.portfolio .project-summary p{font-size:20px;line-height:1.9}.portfolio .project-statement{background:#e9ecdf}.portfolio .project-question{background:#e4e8da;color:var(--pf-ink)}.portfolio .project-question p{color:var(--pf-ink)}.portfolio .internal-hero{background:transparent;color:var(--pf-ink);min-height:auto;padding-top:75px;padding-bottom:55px}.portfolio .internal-hero h1{font-size:clamp(38px,5.5vw,74px);line-height:1.2}.portfolio .internal-hero>p:last-child{max-width:900px;font-size:18px;line-height:1.95}.portfolio .long-bio,.portfolio .cv-section,.portfolio .timeline{background:transparent}.portfolio .timeline-entry{border-color:var(--pf-line)}.portfolio .artist-portrait-card{background:#e1e5d7}.portfolio .cv-actions .button-link{background:var(--pf-ink);color:var(--pf-paper)}.portfolio .gw-hero{margin-top:0}.portfolio .yt-reading,.portfolio .yt-orientation{color:var(--pf-ink)}.portfolio .gw-wrap{scroll-margin-top:50px}
@media(min-width:1700px){.portfolio main,.pf-header,.pf-footer{max-width:1800px;margin-left:auto;margin-right:auto}}
@media(max-width:900px){.pf-header{height:72px}.portfolio .menu-button{display:block;background:none;border:1px solid var(--pf-line);width:40px;height:38px;color:var(--pf-ink);position:static;padding:0;z-index:52}.portfolio .desktop-nav{display:none;position:absolute;top:72px;left:0;right:0;background:var(--pf-paper);height:calc(100dvh - 72px);padding:32px 6vw;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:24px;transform:none;visibility:visible;opacity:1}.portfolio .desktop-nav.is-open{display:flex}.portfolio .desktop-nav a{font-size:21px}.pf-language{padding-left:0;border-left:0}.pf-home-hero{padding-top:48px}.pf-home-title{grid-template-columns:1fr;gap:20px;padding-bottom:35px}.pf-home-title .pf-kicker{margin-bottom:0!important}.pf-home-title h1{grid-row:auto}.pf-home-title>p:not(.pf-kicker){font-size:16px;max-width:40em;margin:0}.pf-home-title .pf-action{margin-top:0}.pf-three{grid-template-columns:1fr 1fr}.pf-three .pf-work:last-child{grid-column:1/-1;max-width:60%}.pf-reading-entry{gap:40px}.pf-section{padding-top:55px;padding-bottom:55px}.pf-heading{padding-top:50px}.pf-bibliography article{grid-template-columns:135px 1fr;gap:25px}}
@media(max-width:600px){.pf-logo{font-size:22px}.pf-home-title h1{font-size:42px}.pf-home-hero{padding-top:37px}.pf-home-art img{aspect-ratio:auto}.pf-home-art>span{font-size:10px}.pf-grid,.pf-three,.pf-gallery,.pf-reading-entry,.pf-related-grid,.pf-contact-grid{grid-template-columns:1fr;gap:34px}.pf-three .pf-work:last-child{max-width:none;grid-column:auto}.pf-section-title{margin-bottom:28px}.pf-work h3{font-size:22px}.pf-card-meta{font-size:10px}.pf-section{padding-top:44px;padding-bottom:44px}.pf-collab{padding-left:4.5vw;padding-right:4.5vw}.pf-heading{padding-bottom:28px}.pf-heading h1{font-size:40px}.pf-project-orientation{display:block}.pf-project-orientation .pf-kicker{margin-bottom:8px!important}.pf-project-image img{max-height:none}.pf-process{grid-template-columns:1fr 1fr;gap:22px}.pf-essay{padding-left:5vw;padding-right:5vw}.pf-essay>p{font-size:16px}.pf-bibliography article{display:block;padding:28px 0}.pf-bib-date{margin-bottom:18px}.pf-bib-date br{display:none}.pf-bib-date span{margin-left:12px}.portfolio .pf-bibliography h2{font-size:22px}.pf-footer{grid-template-columns:1fr;padding-top:38px}.pf-footer small{grid-column:1}.pf-writing-intro{margin-left:0}.portfolio .project-intro{display:block}.portfolio .project-facts{margin-bottom:25px}.portfolio .project-summary p{font-size:17px}.portfolio .internal-hero h1{font-size:39px}.portfolio .internal-hero>p:last-child{font-size:16px}.pf-mail{font-size:clamp(18px,5.4vw,32px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.pf-image img{transition:none}.pf-work a:hover .pf-image img{transform:none}}
@media print{.pf-header,.pf-footer,.pf-filters,.menu-button{display:none!important}.portfolio{background:white;color:black}.pf-section{break-inside:avoid;margin:0;padding:20px 0}.pf-heading{padding:20px 0}.pf-sources{display:block}.pf-grid{gap:20px}.pf-image{max-height:260px}}
.pf-chapter-nav{display:flex;gap:10px 24px;flex-wrap:wrap;margin:0 4.5vw;padding:20px 0;border-bottom:1px solid var(--pf-line)}.pf-chapter-nav a{font-size:12px;line-height:1.7;text-decoration:none;color:var(--pf-muted)}.pf-chapter-nav a:hover{text-decoration:underline}.pf-chapter-nav+section{scroll-margin-top:20px}
