/* 精选专辑、描边署名与右侧菜单。 */
.hero h1{color:#0f52ba}
.signature-name,html[lang="en"] .signature-name{display:flex;align-items:center;justify-content:center;font-size:0;background:none;height:26vw;min-height:180px;max-height:410px;padding:30px 0;line-height:1}
.signature-art{display:block;width:92%;height:auto;overflow:visible;transform:translateZ(0)}

.signature-fill{fill:#fff}
.signature-stroke{fill:none;stroke:#0f52ba;stroke-width:1.7px;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:0}
.draw-ready .signature-stroke{stroke-dashoffset:1}
.draw-ready .signature-fill-layer{clip-path:inset(0 0 100% 0)}
.draw-ready.is-drawn .signature-stroke{animation:signature-draw 1s cubic-bezier(.445,.05,.55,.95) var(--letter-delay,0s) both}
.draw-ready.is-drawn .signature-fill-layer{animation:signature-fill-wipe 1s cubic-bezier(.445,.05,.55,.95) calc(1.45s + var(--letter-delay,0s)) both}
@keyframes signature-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes signature-fill-wipe{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0)}}
.album-heading{align-items:flex-end;margin-bottom:38px;gap:6%}
.album-heading-main{flex:1;min-width:0}
.album-heading .eyebrow{margin-bottom:25px}
.album-heading h2,html[lang="en"] .album-heading h2{font-size:clamp(40px,5.1vw,80px);line-height:1.12;letter-spacing:-.055em;white-space:normal}
.album-aside{width:38%;max-width:540px;flex:none}
.album-location{font:10px/1.6 Arial,sans-serif;letter-spacing:.14em;color:#c8cabe;margin-bottom:15px}
.album-description{font-size:13px;line-height:1.95;color:#a9ad9f}
.album-publication-note{font-size:9px;letter-spacing:.08em;line-height:1.6;margin-top:15px;color:#777f70}
.album-publication-note:empty{display:none}
.album-publications{display:flex;gap:12px;margin-top:29px;align-items:center;min-height:46px}
.album-publications[hidden]{display:none}
.publication-mark{display:flex;align-items:center;justify-content:center;width:102px;height:45px;background:#fff;border-radius:2px;padding:6px 9px}
.publication-mark img{display:block;width:100%;height:100%;object-fit:contain}
.publication-mark:last-child{background:#fff}
.album-slider{position:relative;aspect-ratio:3/2;background:#000;border-radius:3px;overflow:hidden;isolation:isolate;touch-action:pan-y}
.album-open{position:absolute;inset:0;width:100%;height:100%;display:block;overflow:hidden}
.album-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;pointer-events:none}
.album-photo.is-current{opacity:1}
.album-open.is-crossfading .album-photo:not(.is-current){z-index:1}
.album-canvas{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none;z-index:2}
.album-canvas.is-active{opacity:1}
.album-open .open-image{z-index:3;right:22px;bottom:22px;opacity:.92}
.album-dots{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);z-index:4;display:flex;align-items:center;gap:4px;padding:3px 9px;border-radius:24px;background:rgba(0,0,0,.22);backdrop-filter:blur(12px)}
.album-dot{position:relative;display:flex;width:25px;height:28px;align-items:center;justify-content:center;padding:0}
.album-dot::after{content:"";display:block;width:7px;height:7px;background:#fff;opacity:.4;border-radius:50%;transition:opacity .25s,transform .3s}
.album-dot:hover::after{opacity:.8}
.album-dot[aria-current="true"]::after{opacity:1;transform:scale(1.3)}
.album-play{position:absolute;left:23px;bottom:23px;display:flex;width:32px;height:32px;align-items:center;justify-content:center;border:1px solid #ffffff50;border-radius:50%;font:13px Arial,sans-serif;color:#fff;background:#0003;backdrop-filter:blur(8px);z-index:4}
.album-footer{display:flex;justify-content:space-between;gap:30px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line)}
.album-tabs{display:flex;align-items:center;flex-wrap:wrap;gap:0}
.album-tabs button{font-size:14px;line-height:1.5;position:relative;padding:5px 0;color:#777e71;transition:color .3s}
.album-tabs button+button{margin-left:25px}
.album-tabs button+button::before{content:"/";position:absolute;left:-15px;color:#495043}
.album-tabs button[aria-pressed="true"]{color:#eeeee7}
.album-tabs button[aria-pressed="true"]::after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:currentColor}
.album-photo-meta{display:flex;align-items:center;gap:20px;font-size:11px;color:#9da492}
#album-counter{font:10px Arial,sans-serif;letter-spacing:.08em;color:#737d68;font-variant-numeric:tabular-nums}
.menu-dialog{inset:0 0 0 auto;width:44vw;max-width:700px;min-width:440px;height:100dvh;max-height:100dvh;margin:0 0 0 auto;border-radius:0;border:0;border-left:1px solid #2a2f25;overflow-x:hidden;background:#111310}
.menu-dialog::backdrop{background:rgba(0,0,0,.4);backdrop-filter:blur(3px)}
.menu-dialog[open]{animation:menu-slide-in .6s cubic-bezier(.22,1,.36,1) both}
.menu-dialog[open]::before{content:"";position:absolute;inset:0;background:#0f52ba;z-index:0;pointer-events:none;animation:menu-layer-in .65s cubic-bezier(.22,1,.36,1) both}
.menu-inner{position:relative;z-index:1;min-height:100%;padding:35px 8%;background:#111310;animation:menu-content-in .7s cubic-bezier(.22,1,.36,1) both}
.menu-header{gap:15px}
.menu-header .brand-wordmark{width:165px;max-width:100%;margin:-6px -10px}
.menu-header .brand{min-width:0}
.close-menu{flex:none}
.menu-links{padding-block:60px;margin-block:auto}
.menu-links>a,html[lang="en"] .menu-links>a{font-size:clamp(31px,3.1vw,51px);gap:18px;line-height:1.85;animation:menu-link-in .65s cubic-bezier(.22,1,.36,1) both}
.menu-links>a:nth-child(1){animation-delay:.12s}.menu-links>a:nth-child(2){animation-delay:.18s}.menu-links>a:nth-child(3){animation-delay:.24s}.menu-links>a:nth-child(4){animation-delay:.30s}
.menu-links>a:hover{color:#7ca9ec}
.menu-footer{flex-direction:column;gap:12px;line-height:1.7}
.menu-footer>span:last-child{display:none}
.menu-dialog.is-closing{animation:menu-slide-out .38s cubic-bezier(.55,0,1,.45) forwards}
@keyframes menu-slide-in{from{transform:translateX(100%)}to{transform:translateX(0)}}
@keyframes menu-content-in{from{transform:translateX(22%)}to{transform:translateX(0)}}
@keyframes menu-layer-in{0%,30%{transform:translateX(0)}100%{transform:translateX(100%)}}
@keyframes menu-link-in{from{opacity:0;transform:translateY(35px) rotate(3deg)}to{opacity:1;transform:none}}
@keyframes menu-slide-out{to{transform:translateX(100%)}}
@media(max-width:1000px){.album-aside{width:43%}.album-description{font-size:11px}.album-heading h2,html[lang="en"] .album-heading h2{font-size:48px}.publication-mark{width:85px;height:39px}.album-publications{gap:8px}.menu-dialog{width:46vw;min-width:380px}}
@media(max-width:620px){
 .signature-name,html[lang="en"] .signature-name{height:39vw;min-height:150px;padding:30px 0}
 .signature-art{width:96%}
 .album-heading{gap:25px;margin-bottom:24px}
 .album-heading-main{width:100%}
 .album-heading h2,html[lang="en"] .album-heading h2{font-size:clamp(34px,9vw,48px);letter-spacing:-.045em}
 .album-heading .eyebrow{margin-bottom:18px}
 .album-publications{margin-top:20px;gap:9px;min-height:38px}
 .publication-mark{width:86px;height:38px;padding:5px 8px}
 .album-aside{width:100%;max-width:none}
 .album-location{font-size:8px;margin-bottom:8px;letter-spacing:.12em}
 .album-description{font-size:11px;line-height:1.85}
 .album-publication-note{font-size:8px;margin-top:10px}
 .album-slider{border-radius:2px}
 .album-dots{bottom:10px;padding:0 5px;gap:0}
 .album-dot{width:21px;height:26px}.album-dot::after{width:5px;height:5px}
 .album-open .open-image{width:29px;height:29px;font-size:18px;right:10px;bottom:10px}
 .album-play{left:10px;bottom:10px;width:27px;height:27px;font-size:11px}
 .album-footer{align-items:flex-start;flex-direction:column;gap:14px;padding-block:18px}
 .album-tabs button{font-size:13px}
 .album-photo-meta{font-size:10px;gap:15px;min-height:14px}
 .menu-dialog{width:86vw;min-width:0;max-width:440px;inset:0 0 0 auto;height:100dvh;border-radius:0}
 .menu-inner{padding:26px 24px}
 .menu-header .brand-wordmark{width:145px}
 .menu-links>a,html[lang="en"] .menu-links>a{font-size:30px;gap:12px;line-height:2}
 .menu-footer{font-size:9px}
 .about-meta{flex-direction:column;gap:8px;line-height:1.9}
 .portrait-caption{font-size:9px}
}
@media(prefers-reduced-motion:reduce){.signature-fill{opacity:1!important;clip-path:none!important}.signature-stroke{stroke-dashoffset:0!important}.menu-dialog,.menu-inner,.menu-links>a{animation:none!important}.album-canvas{display:none}}

/* 地址、日期和章节标签在电脑端共用同一首行。 */
.album-heading{align-items:flex-start}
.album-heading .eyebrow{line-height:18px;min-height:18px;margin-top:0}
.album-meta-line{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:18px;margin-bottom:20px}
.album-meta-line .album-location{margin:0;line-height:18px;letter-spacing:.1em}
.album-date{flex:none;white-space:nowrap;font:9px/18px Arial,sans-serif;letter-spacing:.02em;color:#929a88;font-variant-numeric:tabular-nums}
.publication-mark{width:118px;height:50px;padding:7px 9px}
.publication-pss{width:136px;height:78px;padding:7px 9px;background:#fff!important}
.album-publication-note{white-space:pre-line;line-height:1.8;color:#a5ad98}
@media(max-width:1000px){.album-meta-line{gap:9px;flex-wrap:wrap}.album-date{font-size:8px}.publication-mark{width:95px;height:44px}.publication-pss{width:119px;height:70px}}
@media(max-width:620px){.album-meta-line{flex-wrap:nowrap;margin-bottom:12px;gap:8px}.album-meta-line .album-location{font-size:8px;letter-spacing:.04em}.album-date{font-size:8px;letter-spacing:0}.publication-mark{width:86px;height:38px}.publication-pss{width:118px;height:69px}.album-publication-note{font-size:9px;line-height:1.8}}

/* 大图两侧保持通透，仅箭头响应悬停与点击。 */
.lightbox-prev,.lightbox-next,.lightbox-prev:hover,.lightbox-next:hover,.lightbox-prev:focus,.lightbox-next:focus,.lightbox-prev:active,.lightbox-next:active{background:transparent;box-shadow:none}
.lightbox-prev,.lightbox-next{color:#b5bbac;transition:color .22s;overflow:visible}
.lightbox-arrow{display:inline-block;transition:transform .22s cubic-bezier(.22,1,.36,1),color .2s;transform-origin:center}
.lightbox-prev:hover,.lightbox-next:hover,.lightbox-prev:focus-visible,.lightbox-next:focus-visible{color:#0f52ba}
.lightbox-prev:hover .lightbox-arrow,.lightbox-next:hover .lightbox-arrow,.lightbox-prev:focus-visible .lightbox-arrow,.lightbox-next:focus-visible .lightbox-arrow{transform:scale(1.32)}
.lightbox-prev:active .lightbox-arrow,.lightbox-next:active .lightbox-arrow{transform:scale(.8);transition-duration:.09s}
@media(prefers-reduced-motion:reduce){.lightbox-arrow{transition:none}}
@media(max-width:620px){.album-photo-meta{order:0}.album-tabs{order:1}}

.album-publications .publication-mark{background:#fff}
html[lang="en"] .vertical-note{white-space:pre-line;max-width:115px}

.album-publications .publication-asianewsphoto{background:#111!important;border:1px solid #2c2c2c}
@media(prefers-reduced-motion:reduce){.signature-fill-layer{clip-path:none!important;animation:none!important}.signature-stroke{animation:none!important}}
/* 留出两秒观看时间后再聚焦；移开鼠标即恢复。 */
.gallery-image-button::after{content:none;display:none}
.gallery-item{translate:0 calc(var(--scroll-lag,0px) * var(--elastic-depth,1))}
.gallery-image-button img{transition:filter .5s ease,transform .8s var(--ease)}
.gallery-caption{transition:opacity .45s ease}
.gallery.is-focused .gallery-item:not(.is-focus-target) .gallery-image-button img{filter:brightness(.36) blur(4px)}
.gallery.is-focused .gallery-item:not(.is-focus-target) .gallery-caption{opacity:.4}
.gallery.is-focused .is-focus-target .gallery-image-button img{filter:none}
.gallery[data-mobile-focus="true"]:not(.is-focused) .gallery-image-button img{transition-property:transform}
.gallery[data-mobile-focus="true"]:not(.is-focused) .gallery-caption{transition:none}
@media(prefers-reduced-motion:reduce){.gallery-item{translate:none}}

/* 所有专辑使用相同尺寸的标识模板；两栏首行完全统一。 */
.album-heading{gap:6%}
.album-aside{width:48%;max-width:none}
.album-heading h2,html[lang="en"] .album-heading h2{font-size:clamp(40px,4.5vw,74px)}
.album-meta-line{flex-wrap:nowrap;align-items:baseline}
.album-meta-line .album-location,.album-meta-line .album-date{font:10px/18px Arial,"PingFang SC",sans-serif;letter-spacing:.08em;color:#b4bbab;margin:0;white-space:nowrap}
.album-publications .publication-mark,.album-publications .publication-pss,.album-publications .publication-asianewsphoto{width:118px;height:50px;padding:7px 9px;background:#fff!important;border:0;flex:none}
.album-publications .publication-mark img{width:100%;height:100%;object-fit:contain}
@media(max-width:1000px){.album-aside{width:48%}.album-meta-line .album-location,.album-meta-line .album-date{font-size:8px;letter-spacing:.02em}.album-publications .publication-mark{width:95px;height:44px;padding:6px 8px}.album-heading h2,html[lang="en"] .album-heading h2{font-size:clamp(35px,4.5vw,48px)}}
@media(max-width:620px){.album-aside{width:100%}.album-heading{gap:25px}.album-heading h2,html[lang="en"] .album-heading h2{font-size:clamp(34px,9vw,48px)}.album-meta-line .album-location,.album-meta-line .album-date{font-size:8px;line-height:18px;letter-spacing:0}.album-publications .publication-mark{width:86px;height:38px;padding:5px 8px}}

.grid-surface{background-image:none}
@media(max-width:620px){.album-tabs{flex-wrap:nowrap;max-width:100%;overflow-x:auto;white-space:nowrap;scrollbar-width:none;padding-bottom:3px}.album-tabs button{flex:none}.album-tabs::-webkit-scrollbar{display:none}}

/* 手机端第五张之后的镜面高光按钮。 */
.gallery-more{display:none}
@media(max-width:620px){
 .gallery-more:not([hidden]){display:block;margin:8px 0 36px}
 .specular-button{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;min-height:54px;overflow:hidden;border-radius:999px;border:1px solid #616d7e70;padding:16px 24px;background:linear-gradient(125deg,#111722 0%,#303c4e 45%,#151b25 70%,#0b1019 100%);color:#eef3fd;font:12px/1.5 Arial,"PingFang SC",sans-serif;box-shadow:inset 0 1px 0 #ffffff38,inset 0 -1px 0 #000,0 7px 22px #0005;transition:transform .22s cubic-bezier(.22,1,.36,1),border-color .25s}
 .specular-button::before{content:"";position:absolute;z-index:-1;inset:-90% -50%;background:linear-gradient(115deg,transparent 30%,#ffffff05 42%,#ffffff55 50%,#ffffff08 57%,transparent 67%);transform:translateX(-70%);animation:specular-sweep 5s ease-in-out infinite;pointer-events:none}
 .specular-button:hover,.specular-button:focus-visible{border-color:#7aabea;box-shadow:inset 0 1px 0 #ffffff55,0 0 20px #0f52ba33}
 .specular-button:active{transform:scale(.97)}
 .specular-button>span:last-child{font-size:21px;line-height:1}
}
@keyframes specular-sweep{0%,45%{transform:translateX(-70%)}80%,100%{transform:translateX(70%)}}
@media(prefers-reduced-motion:reduce){.specular-button::before{animation:none}.specular-button{transition:none}}
.album-play[hidden]{display:none}
@media(max-width:620px){.specular-button{background:radial-gradient(130px 65px at var(--specular-x,50%) var(--specular-y,0%),#dcecff35,transparent 80%),linear-gradient(125deg,#111722 0%,#303c4e 45%,#151b25 70%,#0b1019 100%)}}
.specular-button:focus-visible{outline-color:#0f52ba}

/* 署名按字形自然高度排版，留出上、下呼吸空间，避免 Q 尾部裁切。 */
.signature-name,html[lang="en"] .signature-name{height:auto;min-height:0;max-height:none;padding:38px 0 46px;overflow:visible}
.signature-art{width:92%;height:auto;flex:none;max-height:none;overflow:visible}
.signature-top{padding-bottom:12px}
/* 电脑精选区完整占一屏，照片保持完整构图。 */
@media(min-width:621px){
 .featured{box-sizing:border-box;height:100dvh;min-height:0;padding-block:clamp(20px,3.4dvh,38px);display:flex;flex-direction:column}
 .album-heading{flex:none;margin-bottom:clamp(14px,2.2dvh,25px)}
 .album-description{font-size:clamp(11px,1.4dvh,13px);line-height:1.8}
 .album-heading h2,html[lang="en"] .album-heading h2{font-size:clamp(36px,4.1vw,66px)}
 .album-publications{margin-top:22px}
 .album-slider{flex:1;aspect-ratio:auto;min-height:80px;width:100%}
 .album-footer{flex:none;padding:14px 0 10px;gap:20px}
 .album-tabs button{font-size:clamp(10px,1vw,14px)}
}
@media(max-width:620px){
 .album-heading{min-height:0!important}
 .album-heading-main{flex:none}
 .signature-name,html[lang="en"] .signature-name{height:auto;min-height:0;max-height:none;padding:28px 0 32px;overflow:visible}
 .signature-art{width:96%}
 .signature-top,html[lang="en"] .signature-top{align-items:center;gap:10px;padding-bottom:0}
 .signature-top>span:first-child{white-space:nowrap;flex:none}
 .signature-top>span:last-child,html[lang="en"] .signature-top>span:last-child{max-width:none;white-space:nowrap;flex:none;font-size:clamp(6px,2vw,8px);line-height:1.5;letter-spacing:.02em}
}
.about-portrait{aspect-ratio:1076/1436}
.about-portrait img{object-fit:contain;object-position:center}
.about-portrait::after{content:"";position:absolute;inset:72% 0 0;background:linear-gradient(transparent,#0009);pointer-events:none}
.portrait-caption{z-index:1}

/* 红标作品先组成一个完整的瀑布流，再展示其余作品。 */
.gallery,.gallery[data-compact="true"]{columns:auto}
.gallery-batch{columns:3;column-gap:24px}
.gallery[data-compact="true"] .gallery-batch{columns:2}
.gallery-batch+.gallery-batch{margin-top:4px}
.portrait-caption{left:0;right:0;width:100%;padding-inline:16px;text-align:center}
@media(max-width:1000px){.gallery-batch{columns:2;column-gap:24px}}
@media(max-width:620px){.gallery-batch,.gallery[data-compact="true"] .gallery-batch{columns:1}.filters{justify-content:flex-start;gap:4px;overflow-x:auto;scrollbar-width:none;min-width:0}.filters::-webkit-scrollbar{display:none}.filter{flex:none;font-size:10px;padding:8px 9px}}
@media(max-width:370px){.filters{gap:4px}.filter{padding-inline:6px;gap:4px}}

.portrait-caption{line-height:1.7;text-wrap:balance}
.about-copy .about-lead,.about-copy .button .arrow{color:#0f52ba}
.gallery-image-button picture{display:block}
.album-open>picture{display:contents}
.about-portrait>picture{display:block;width:100%;height:100%}
.shiny-album-title{position:relative;display:inline-block;max-width:100%;vertical-align:top;color:#b5b5b5;background-repeat:no-repeat;background-size:100% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;--shine-position:-42.5%}
.shiny-album-title-glow{position:absolute;inset:0;background-repeat:no-repeat;background-size:100% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:blur(.14em);pointer-events:none;user-select:none}
@media(prefers-reduced-motion:reduce){.shiny-album-title-glow{display:none}}
@media(max-width:620px){
 html,body{scrollbar-width:none;-ms-overflow-style:none}
 html::-webkit-scrollbar,body::-webkit-scrollbar{display:none;width:0;height:0}
}
/* 电脑按原比例排列为等高图片行，横、竖幅共同填满一行。 */
@media(min-width:621px){
 .portfolio>.section-inner{max-width:none}
 .gallery-batch,.gallery[data-compact="true"] .gallery-batch{columns:auto;display:grid;gap:28px}
 .gallery-row{display:grid;gap:24px;align-items:start;min-width:0}
 .gallery-row .gallery-item{margin:0;min-width:0}
 .gallery-row .gallery-image-button img{aspect-ratio:auto}
 .gallery-batch+.gallery-batch{margin-top:28px}
}
@media(min-width:621px) and (max-width:1000px){.gallery-row{gap:20px}}
@media(max-width:620px){
 .hero-bottom{gap:16px;align-items:flex-end}
 .hero-bottom>[data-i18n="photographerRole"]{flex:1;min-width:0;max-width:calc(100% - 76px);white-space:normal;line-height:1.7;letter-spacing:.02em;text-wrap:balance}
 .hero-bottom .intro-replay{flex:none}
}

/* SVG icons keep the same line style on desktop and iOS. */
.ui-icon{display:block;width:1em;height:1em;flex:none}
.menu-links>a>i{display:flex;align-items:center;justify-content:center}
.menu-inner:focus{outline:none}
.album-play .ui-icon{width:14px;height:14px}
.album-play[aria-pressed="true"] .album-play-icon,.album-play[aria-pressed="false"] .album-pause-icon{display:none}
/* Align the drawn cross with the visible centre of Close / 关闭. */
.close-menu,.lightbox-close{align-items:center}
.close-menu>span:last-child,.lightbox-close>span:last-child{display:flex;align-items:center;justify-content:center;width:24px;height:24px;line-height:1;transform:translateY(-1px)}
.close-icon{width:24px;height:24px}
@media(min-width:621px){.menu-header .brand-wordmark{width:232px;max-width:none;margin:-11px -15px}}
@media(max-width:620px){.menu-header .brand-wordmark{width:183px;max-width:none;margin:-8px -12px}}
@media(max-width:370px){.menu-header .brand-wordmark{width:157px;margin:-7px -10px}}
