*{box-sizing:border-box} :root{font-family:Arial,"Helvetica Neue","Microsoft YaHei",sans-serif;color:#252823;background:#f1f2ed;font-synthesis:none}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid #596927;outline-offset:5px}button:hover,a:hover{color:#66713c}header{height:112px;margin:0 42px;border-bottom:1px solid #c9ccc2;display:flex;align-items:center;justify-content:space-between;gap:30px;position:relative;z-index:5}.identity{display:flex;flex-direction:column;gap:5px}.identity span:first-child{font-size:25px;letter-spacing:.19em}.identity span:last-child{font-size:13px;letter-spacing:.075em}nav{display:flex;gap:36px;align-items:center;font-size:15px}nav button{padding:12px 0}nav .active{border-bottom:1px solid}sup{font-size:11px;padding-left:5px}.edition{text-align:right;font-size:12px;line-height:1.8;letter-spacing:.06em}main{height:calc(100dvh - 112px);min-height:590px;position:relative;overflow:hidden}.intro{position:absolute;left:42px;top:99px;z-index:2;pointer-events:none}.eyebrow{font-size:12px;letter-spacing:.13em}.intro h1{font-family:"Songti SC","SimSun",serif;font-weight:400;font-size:64px;letter-spacing:-.06em;margin:26px 0 20px}.intro p{font-size:15px;line-height:1.9;color:#70766a}.toolbar{position:absolute;top:20px;left:42px;right:42px;display:flex;justify-content:space-between;gap:20px;z-index:4}.filters,.views{display:flex;gap:5px;align-items:center}.filters button,.views button{font-size:14px;padding:9px 13px;border-radius:1px}.filters button span{font-size:12px;margin-left:6px}.selected{background:#dfff00!important;color:#252823!important}.views{border:1px solid #c8ccc1;padding:3px}.views button{padding:5px 13px}#viewport{position:absolute;inset:70px 0 65px;overflow:hidden;touch-action:none;cursor:grab}#viewport.dragging{cursor:grabbing}#world{position:absolute;transform-origin:0 0;width:2300px;height:1500px;will-change:transform}.work{position:absolute;padding:0;text-align:left;display:block;color:#252823;transition:opacity .2s}.work[hidden]{display:none}.work figure{margin:0;position:relative}.work img{width:100%;height:auto;max-height:270px;object-fit:cover;display:block;box-shadow:0 7px 16px #1820150b;transition:transform .35s,box-shadow .35s;user-select:none;pointer-events:none}.work:hover img,.work:focus-visible img{transform:translateY(-6px);box-shadow:0 14px 24px #18201520}.work figcaption{display:flex;justify-content:space-between;gap:15px;margin-top:12px;font-size:14px;line-height:1.5}.work .meta{font-size:11px;color:#73796c;display:block;letter-spacing:.04em;margin-top:4px}.work .num{font-size:11px;font-family:monospace;padding-top:3px}.work .open-mark{position:absolute;right:10px;top:10px;width:28px;height:28px;background:#dfff00;display:grid;place-items:center;opacity:0;transition:opacity .2s}.work:hover .open-mark,.work:focus-visible .open-mark{opacity:1}.canvas-footer{position:absolute;bottom:0;left:42px;right:42px;height:65px;border-top:1px solid #c9ccc2;display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:12px;color:#73796c;background:#f1f2ed;z-index:4}.zoom{display:flex;align-items:center;gap:12px;color:#252823}.zoom button{font-size:20px;min-width:28px;min-height:36px}.zoom #reset{font-size:13px;margin-left:12px}.zoom output{min-width:40px;text-align:center;font-size:12px}#count{font-size:12px}.skip{position:fixed;top:-80px;z-index:100;background:#dfff00;padding:12px}.skip:focus{top:0}dialog{border:0;background:#f1f2ed;color:#252823;width:calc(100% - 64px);max-width:1500px;max-height:calc(100dvh - 64px);padding:76px 40px 40px;box-shadow:0 20px 100px #0003}dialog::backdrop{background:#20251d85;backdrop-filter:blur(7px)}.close{position:absolute;right:32px;top:24px;font-size:14px;padding:9px 10px;background:#dfff00;z-index:2}.detail-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(270px,1fr);gap:50px}.gallery>img{width:100%;height:52dvh;object-fit:contain;background:#e6e8e1}.gallery-bar{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #c9ccc2;padding:9px 0;font-size:13px}.gallery-bar button{font-size:25px;padding:0 15px;min-height:38px}#thumbnails{display:flex;gap:8px;overflow-x:auto;padding:15px 0}#thumbnails button{padding:3px;flex-shrink:0;border:1px solid transparent}#thumbnails button[aria-pressed=true]{border-color:#596927}#thumbnails img{width:70px;height:50px;object-fit:cover;display:block}article h2{font-family:"Songti SC","SimSun",serif;font-size:42px;font-weight:400;line-height:1.3;margin:25px 0 12px}.english{color:#70766a;font-size:16px;line-height:1.5}dl{font-size:14px;line-height:1.7}dt{color:#72796a;margin-top:12px;font-size:12px}dd{margin:3px 0 0}#detailDescription{font-size:16px;line-height:1.95;white-space:pre-line;margin:28px 0}.project-navigation{border-top:1px solid #c9ccc2;display:flex;justify-content:space-between;padding-top:20px;font-size:14px}.bio-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:90px;padding:20px 35px}.bio-layout h2{font-size:54px;font-weight:400;line-height:1.3}.bio-layout h2 span{font-size:38px}.bio-lead{font-size:23px;line-height:1.65}.email{display:inline-block;margin-top:30px;font-size:16px;border-bottom:1px solid;padding-bottom:8px}.bio-layout p{line-height:1.85}.bio-copy{font-size:23px;margin-top:0}.bio-layout section{border-top:1px solid #c9ccc2;margin-top:30px;padding-top:10px}.bio-layout h3{font-size:14px;font-weight:400;color:#72796a}.bio-layout small{display:block;margin-top:35px;font-size:12px;color:#72796a}body.grid-mode main{height:auto;min-height:calc(100dvh - 112px);overflow:visible;padding:105px 42px 90px}body.grid-mode .intro{position:static;margin-bottom:50px}body.grid-mode .intro h1{margin:20px 0}body.grid-mode .intro p{display:none}body.grid-mode #viewport{position:static;overflow:visible;touch-action:auto;cursor:auto}body.grid-mode #world{position:static;transform:none!important;width:auto;height:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:50px 32px}body.grid-mode .work{position:static!important;width:auto!important}body.grid-mode .work img{height:250px;max-height:none;object-fit:cover}body.grid-mode .canvas-footer{position:relative;left:auto;right:auto;margin-top:60px;bottom:auto}body.grid-mode .zoom{visibility:hidden}
@media(min-width:1600px){.intro{top:130px}.intro h1{font-size:78px}}
@media(max-width:850px){header{margin:0 24px;height:95px}.edition{display:none}nav{gap:22px}.identity span:first-child{font-size:22px}main{height:calc(100dvh - 95px)}.toolbar{left:24px;right:24px}.filters{gap:0}.filters button{padding:9px;font-size:13px}.intro{left:24px}.intro h1{font-size:48px}.canvas-footer{left:24px;right:24px}#hint{max-width:175px;line-height:1.7}.detail-layout{grid-template-columns:1fr;gap:24px}dialog{width:calc(100% - 28px);max-height:calc(100dvh - 28px);padding:70px 24px 25px}.gallery>img{height:42dvh}.bio-layout{grid-template-columns:1fr;gap:35px;padding:0}.bio-layout h2{font-size:40px}.bio-lead{font-size:20px}body.grid-mode main{padding-left:24px;padding-right:24px}body.grid-mode #world{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){header{height:90px;margin:0 18px;gap:15px}.identity span:first-child{font-size:20px}.identity span:last-child{font-size:10px}nav{gap:19px;font-size:13px}nav sup{display:none}main{height:calc(100dvh - 90px);min-height:570px}.toolbar{left:18px;right:18px;top:15px;flex-wrap:wrap;gap:14px}.filters{width:100%;justify-content:space-between}.filters button{font-size:12px;padding:9px 7px}.filters button span{display:none}.views{margin-left:auto}.intro{left:20px;top:86px}.intro .eyebrow{font-size:10px}.intro h1{font-size:40px;margin:15px 0}.intro p{display:none}#viewport{top:170px;bottom:72px}.canvas-footer{left:18px;right:18px;height:72px;gap:7px}#hint{font-size:11px;max-width:115px}#count{display:none}.zoom{gap:4px}.zoom #reset{margin-left:4px}.work figcaption{font-size:16px}.work .meta{font-size:13px}article h2{font-size:32px}body.grid-mode main{padding:155px 18px 25px}body.grid-mode .intro{display:none}body.grid-mode #world{gap:35px 16px}body.grid-mode .work img{height:150px}body.grid-mode .work figcaption{font-size:13px}body.grid-mode .work .meta{font-size:11px}body.grid-mode .work .num{display:none}body.grid-mode .canvas-footer{margin-top:30px}.bio-copy{font-size:20px}.email{font-size:14px}}
/* English-led editorial typography and paired translations. */
:root{font-family:"Helvetica Neue",Arial,"Microsoft YaHei",sans-serif}
.identity span:first-child{font-size:24px;letter-spacing:.025em;font-weight:500}
.identity span:last-child{font-size:12px;letter-spacing:.26em;color:#72796a}
.intro h1{font-family:Georgia,"Times New Roman",serif;font-size:82px;line-height:.96;letter-spacing:-.055em;margin:25px 0 22px}
.intro p{font-size:15px;line-height:1.7}
.filters button{white-space:nowrap}.work figcaption{font-size:16px;line-height:1.35}.work .meta{font-size:12px;line-height:1.6;margin-top:7px}
.work figcaption>span:first-child{min-width:0}.edition{font-size:11px;line-height:1.9}
article h2{font-family:Georgia,"Times New Roman",serif;font-size:48px;line-height:1.08;letter-spacing:-.035em;margin-bottom:14px;overflow-wrap:anywhere}
.project-zh{font-size:15px;line-height:1.7;color:#72796a;margin:0 0 28px}
.article-source{display:inline-block;font-size:14px;margin-top:24px;border-bottom:1px solid #72796a;padding-bottom:5px}.source-credit{font-size:12px;line-height:1.7;color:#72796a;margin:16px 0 0}
.detail-layout>*{min-width:0}.gallery{max-width:100%}.detail-layout article{overflow-wrap:break-word}.intro h1 br:after{content:" "}
#detailMeta{display:grid;grid-template-columns:110px 1fr;gap:12px 18px;border-top:1px solid #c9ccc2;border-bottom:1px solid #c9ccc2;padding:19px 0}
#detailMeta dt,#detailMeta dd{margin:0}#detailMeta dt{font-size:12px}#detailMeta dd{font-size:14px}
#detailDescription{white-space:normal;margin:26px 0 32px}
.bilingual-copy .copy-en{font-size:17px;line-height:1.75;letter-spacing:0;margin:0 0 17px;white-space:pre-line}
.bilingual-copy .copy-zh{font-family:"Microsoft YaHei","PingFang SC",sans-serif;font-size:14px;line-height:1.95;color:#72796a;margin:0;padding-left:16px;border-left:1px solid #c9ccc2;white-space:pre-line}
.bio-layout{gap:75px;grid-template-columns:.85fr 1.3fr}.bio-layout h2{font-family:Georgia,"Times New Roman",serif;font-size:76px;line-height:.96;letter-spacing:-.045em;margin:30px 0}.bio-layout h2 span{display:block;font-family:Arial,"Microsoft YaHei",sans-serif;font-size:17px;letter-spacing:.18em;color:#72796a;margin-top:20px}
.bio-lead{font-size:25px!important;line-height:1.4!important;letter-spacing:-.02em}.bio-opening .copy-en{font-size:24px;line-height:1.5;letter-spacing:-.025em}.bio-layout .bilingual-copy+.bilingual-copy{margin-top:28px}.bio-layout h3{font-size:13px;text-transform:uppercase;letter-spacing:.08em;margin:15px 0 22px}.bio-layout section{padding-top:12px;margin-top:38px}.bio-layout dd{margin-bottom:28px}.bio-layout dt{margin-bottom:10px}.bio-layout small{line-height:1.7}
#translation-tooltip{position:fixed;inset:auto;margin:0;z-index:10000;max-width:min(370px,calc(100vw - 24px));padding:11px 15px;border:1px solid #4b5043;background:#262b23;color:#f4f5f0;font-family:"Microsoft YaHei","PingFang SC",sans-serif;font-size:14px;line-height:1.75;box-shadow:0 6px 20px #20251d24;pointer-events:none;white-space:pre-line;text-align:left;letter-spacing:0;max-height:calc(100dvh - 24px);overflow:auto}
#translation-tooltip:not(:popover-open){display:none}
/* Keep small source images at their native size instead of enlarging them. */
.gallery>img{object-fit:scale-down}
.canvas-footer #hint{line-height:1.6}
@media(min-width:1600px){.intro h1{font-size:96px}}
@media(max-width:1100px){.toolbar{flex-wrap:wrap;gap:12px}.views{margin-left:auto}.intro{top:145px}.intro h1{font-size:68px}#viewport{top:115px}.filters button{font-size:13px;padding:9px 10px}}
@media(max-width:850px){.identity span:first-child{font-size:21px}.detail-layout{gap:30px}.bio-layout{grid-template-columns:1fr;gap:32px}.bio-layout h2{font-size:66px}.bio-opening .copy-en{font-size:23px}.intro h1{font-size:62px}body.grid-mode main{padding-top:140px}.canvas-footer #hint{max-width:260px}.filters{flex-wrap:wrap}.filters button{padding:8px 10px}article h2{font-size:40px}}
@media(max-width:560px){header{gap:10px}.identity span:first-child{font-size:16px;white-space:nowrap}.identity span:last-child{font-size:10px}nav{gap:13px;font-size:12px}.toolbar{gap:8px}.filters{justify-content:flex-start;gap:3px}.filters button{font-size:12px;padding:8px 9px}.views{margin-top:0}.views button{font-size:12px;min-height:30px}.intro{top:151px}.intro h1{font-size:43px;line-height:.96;margin:14px 0}.intro h1 br{display:none}.intro .eyebrow{font-size:10px}#viewport{top:250px;bottom:80px}main{min-height:650px}.canvas-footer{height:80px}.canvas-footer #hint{font-size:11px;max-width:165px}.zoom{gap:3px}.zoom #reset{font-size:12px}.work figcaption{font-size:17px}.work .meta{font-size:13px}.bio-layout h2{font-size:58px}.bio-opening .copy-en{font-size:21px}.bilingual-copy .copy-en{font-size:16px;line-height:1.7}.bio-opening .copy-en{font-size:21px}.bilingual-copy .copy-zh{font-size:14px;padding-left:12px}.bio-layout h3{font-size:12px}article h2{font-size:35px}#detailMeta{grid-template-columns:86px 1fr;gap:12px}#detailMeta dd{font-size:13px}.project-navigation{font-size:12px;gap:16px}.project-navigation button{min-height:40px}body.grid-mode main{padding-top:157px}body.grid-mode .work figcaption{font-size:14px}body.grid-mode .work .meta{font-size:11px}.canvas-footer #count{white-space:nowrap}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* Typography inspired by the supplied reference: neutral sans, open tracking. */
:root{font-family:"Helvetica Neue",Helvetica,Arial,"PingFang SC","Microsoft YaHei",sans-serif;font-weight:400;letter-spacing:.035em}
.intro h1,.bio-layout h2,article h2,.work figcaption{font-family:"Helvetica Neue",Helvetica,Arial,"PingFang SC","Microsoft YaHei",sans-serif;font-weight:400}
.intro h1{letter-spacing:-.025em;line-height:1.08}
article h2{font-size:40px;letter-spacing:.005em;line-height:1.2}
.bio-layout h2{letter-spacing:-.015em;line-height:1.08}
.work figcaption{letter-spacing:.045em;line-height:1.65}
.bilingual-copy .copy-en{font-size:14px;font-weight:400;letter-spacing:.075em;line-height:2; margin-bottom:24px}
.bio-opening .copy-en{font-size:19px;letter-spacing:.045em;line-height:1.85}
.bilingual-copy .copy-zh{letter-spacing:.035em;line-height:2}
.intro p{font-size:14px;letter-spacing:.065em;line-height:2}
nav,.filters button,.views button,.article-source{letter-spacing:.055em}
#detailMeta dd{letter-spacing:.04em;line-height:1.9}
@media(max-width:560px){article h2{font-size:30px}.bilingual-copy .copy-en{font-size:14px;letter-spacing:.045em;line-height:1.95}.bio-opening .copy-en{font-size:18px}.work figcaption{letter-spacing:.025em}}

.surf-lines{position:absolute;left:0;top:0;width:2400px;height:2200px;overflow:visible;pointer-events:none;transform-origin:0 0;z-index:0}
.surf-lines path{fill:none;stroke:#86958e;stroke-width:1.2;vector-effect:non-scaling-stroke}
#world{z-index:1}
body:not(.grid-mode) .work{transform:scale(.8);transform-origin:center center;backface-visibility:visible}
body.grid-mode .work{transform:none!important}

.surf-lines path{stroke:#657f83;stroke-width:1.45;stroke-dasharray:6 8;stroke-linecap:round}
.surf-lines path:nth-child(2n){stroke-dasharray:2 7 11 7}
.surf-lines path:nth-child(3n){stroke-dasharray:14 9 3 9}

/* Compact square covers; the detail gallery keeps the uncropped originals. */
body:not(.grid-mode) .work{width:220px!important}
.work img,body.grid-mode .work img{width:100%;height:auto;aspect-ratio:1/1;max-height:none;object-fit:cover;object-position:center}
.surf-lines path,.surf-lines path:nth-child(2n),.surf-lines path:nth-child(3n){stroke:#507880;stroke-dasharray:.1 11;stroke-linecap:round}

/* Preserve complete silhouettes inside smaller square frames. */
body:not(.grid-mode) .work{width:110px!important}
.work img,body.grid-mode .work img{object-fit:contain;background:#e6e8e1;object-position:center}
body:not(.grid-mode) .work figcaption{font-size:12px;line-height:1.45;gap:4px}
body:not(.grid-mode) .work .meta{font-size:9px;letter-spacing:0}
body:not(.grid-mode) .work .num{display:none}
/* Remove excess surroundings only where the full artwork stays in view. */
.work[data-id="new-species"] img{object-view-box:inset(28% 0 3% 0)}
.work[data-id="jumping-heart"] img{object-view-box:inset(17% 12% 5% 12%)}
.work[data-id="gliding"] img{object-view-box:inset(10% 0 0 0)}

#copyright{font-size:11px;line-height:1.6;letter-spacing:.025em;text-align:center;max-width:340px}
@media(max-width:700px){.canvas-footer #hint{display:none}#copyright{font-size:10px;text-align:left;max-width:210px}}

/* Quiet opening; controls remain accessible by hover, focus and touch. */
header{border-bottom-color:transparent}.edition,.intro>.eyebrow{display:none}
header nav,.toolbar,.canvas-footer{opacity:0;transition:opacity .35s}
header:hover nav,header:focus-within nav,.toolbar:hover,.toolbar:focus-within,.canvas-footer:hover,.canvas-footer:focus-within,.controls-visible header nav,.controls-visible .toolbar,.controls-visible .canvas-footer,body.grid-mode .toolbar,body.grid-mode .canvas-footer{opacity:1}
.work figcaption{opacity:0;transition:opacity .3s}.work:hover figcaption,.work:focus-visible figcaption,body.grid-mode .work figcaption{opacity:1}
.intro h1{font-size:clamp(45px,6vw,90px);letter-spacing:-.04em}
.drift-bottle{position:absolute;width:72px;height:135px;z-index:3;padding:8px;filter:drop-shadow(0 8px 12px #3a6b6422)}
.drift-bottle[hidden]{display:none}.drift-bottle svg{width:100%;height:100%;fill:none;stroke:#526e66;stroke-width:1.2}.bottle-body{fill:#d9e6dcbb}.bottle-note{fill:#f5f2dc}.drift-bottle:hover{filter:drop-shadow(0 0 15px #a6bf87aa)}
#ideaDialog{max-width:660px;padding:64px;max-height:90dvh;border:1px solid #d5d9ce}
#ideaDialog h2{font-weight:400;font-size:54px;letter-spacing:-.04em;margin:28px 0 14px}.idea-lead{color:#777e70;font-size:14px;line-height:1.9;margin-bottom:34px}
#ideaForm label{display:block;font-size:11px;letter-spacing:.06em;color:#64705f}
#ideaForm textarea,#ideaForm input{display:block;width:100%;border:0;border-bottom:1px solid #bdc6b6;background:transparent;color:#252823;border-radius:0;font:inherit;padding:12px 0;outline-offset:4px}
#ideaForm textarea{font-size:17px;line-height:1.8;min-height:150px;resize:vertical;margin:8px 0 24px}.idea-fields{display:grid;grid-template-columns:1fr 1fr;gap:24px}.idea-privacy{font-size:11px;color:#7a8175;line-height:1.8;margin:25px 0}.idea-submit{border-bottom:1px solid;padding:10px 0;font-size:14px}.idea-submit:disabled{opacity:.5;cursor:wait}
#ideaStatus{font-size:13px;line-height:1.8}#ideaForm .idea-trap{display:none}
.intro{width:max-content;max-width:calc(100% - 24px)}.intro h1 br{display:block}.intro h1{line-height:.98;position:relative}.drift-word{display:block;width:max-content;position:relative;z-index:1;will-change:transform}.mind-stay{position:absolute;left:5px;top:3px;color:rgba(80,86,79,.28);white-space:nowrap}.intro p{position:relative}body.grid-mode .drift-word{transform:none!important;will-change:auto}body.grid-mode .mind-stay{display:none}
@media(max-width:600px){#ideaDialog{padding:58px 26px 28px}#ideaDialog h2{font-size:42px}.idea-fields{grid-template-columns:1fr;gap:18px}.drift-bottle{width:60px;height:112px}}
