/* 沿用原站排版，只为已确认的交互增加样式。 */
.masthead__nav .masthead__link { font-size:calc(1.03125rem + 2px); font-weight:700; display:inline-block; transition:transform 230ms ease,color 230ms ease; }
.masthead__nav .masthead__link:hover,.masthead__nav .masthead__link:focus-visible { transform:translateY(-3px); color:#d9b990; }
@media (max-width:700px) { .masthead__nav { flex-wrap:wrap; row-gap:.65rem; } }
body.folio-busy { cursor:progress; }
body.folio-busy main { pointer-events:none; }
.folio-tilt .plate__frame { transform:perspective(900px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) translateZ(0); transition:transform 220ms ease,box-shadow 220ms ease; transform-origin:center; will-change:transform; }
.folio-tilt:hover .plate__frame { box-shadow:0 18px 35px #0007; }
.folio-hero-tilt .hero__image { transform:perspective(1400px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) translateZ(0); transition:transform 220ms ease,box-shadow 220ms ease; transform-origin:center; will-change:transform; }
.folio-hero-tilt:hover .hero__image { box-shadow:0 20px 45px #0008; }
.folio-flight { position:fixed; z-index:10000; pointer-events:none; overflow:hidden; background:#0b0a09; box-shadow:0 30px 100px #0009; }
.folio-flight img { width:100%; height:100%; object-fit:cover; display:block; }
.work__plate[role=button]:focus-visible { outline:2px solid #d9b990; outline-offset:-5px; }
.folio-ring[hidden] { display:none; }
.folio-ring { position:fixed; inset:0; z-index:9000; color:var(--fg,#f7f4f0); background:radial-gradient(ellipse at 50% 40%,#242521 0%,#0b0a09 70%); display:grid; grid-template-rows:auto 1fr auto; overflow:hidden; }
.folio-ring__top { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1.4rem clamp(1.2rem,4vw,3.5rem); }
.folio-ring__label { margin:0; color:#a39d94; font-size:.8rem; letter-spacing:.12em; }
.folio-ring__button { appearance:none; display:grid; place-items:center; color:#f7f4f0; background:transparent; border:1px solid #ffffff25; min-width:46px; min-height:46px; border-radius:50%; font:inherit; cursor:pointer; transition:color .2s,border-color .2s,transform .2s; }
.folio-ring__button:hover { color:#d9b990; border-color:#d9b990; transform:translateY(-2px); }
.folio-ring__button:focus-visible { outline:2px solid #d9b990; outline-offset:4px; }
.folio-ring__stage { position:relative; min-height:0; perspective:1100px; transform-style:preserve-3d; touch-action:none; user-select:none; cursor:grab; overflow:clip; }
.folio-ring__stage.is-dragging { cursor:grabbing; }
.folio-ring__card { position:absolute; top:50%; left:50%; width:min(44vw,520px); height:100%; max-height:65vh; border:0; padding:0; background:transparent; transform-origin:center; cursor:pointer; will-change:transform; }
.folio-ring__card img { width:100%; height:100%; object-fit:contain; display:block; pointer-events:none; filter:drop-shadow(0 18px 28px #0008); }
.folio-ring__bottom { position:relative; z-index:30; text-align:center; padding:.5rem 1.5rem 1.5rem; background:linear-gradient(transparent,#0b0a09 24%); }
.folio-ring__title { margin:.5rem 0; font-size:clamp(1.2rem,2.6vw,2rem); font-weight:400; }
.folio-ring__count { margin:.4rem 0 1rem; color:#a39d94; font-family:var(--font-mono); font-size:.8rem; }
.folio-ring__controls { display:flex; justify-content:center; align-items:center; gap:1rem; }
.folio-ring__zoom { border-radius:0; border-width:0 0 1px; font-size:.85rem; padding:0 .8rem; }
.folio-ring__hint { color:#a39d94; font-size:.72rem; margin:1rem 0 0; }
.lightbox { z-index:9500!important; }
@media(max-width:700px) { .folio-ring__top { padding:1rem; } .folio-ring__card { width:74vw; max-height:58vh; } .folio-ring__bottom { padding:.5rem 1rem 1rem; } .folio-ring__hint { font-size:.7rem; } }
@media(prefers-reduced-motion:reduce) { .masthead__nav .masthead__link,.folio-tilt .plate__frame,.folio-hero-tilt .hero__image { transition:none; transform:none!important; } .folio-ring__card { will-change:auto; } }

/* 首页外框统一3:2，图片居中裁切；分类页继续使用原比例布局。 */
.grid.home-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.grid.home-grid .grid__cell { max-width:none; min-width:0; }
.grid.home-grid .plate__frame { aspect-ratio:3/2; overflow:hidden; }
.grid.home-grid .responsive-image { width:100%; height:100%; aspect-ratio:auto!important; }
.grid.home-grid .responsive-image img { width:100%; height:100%; object-fit:cover; object-position:center; transform:none!important; }
@media(max-width:1100px) { .grid.home-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:700px) { .grid.home-grid { grid-template-columns:minmax(0,1fr); } }

/* 个人页：照片浮于左上，全部文字从上到下连续流并环绕照片。 */
.about.about-resume { max-width:64rem; }
.about-resume .portrait { float:left; width:min(34%,21rem); margin:0 clamp(1.8rem,4vw,3rem) 1.6rem 0; min-width:0; }
.about-resume .portrait__frame { aspect-ratio:3/4!important; }
.about-resume .portrait__img { width:100%; height:100%; object-fit:cover; }
.about-resume .about__head { border-bottom:0; padding:0; min-width:0; }
.about-resume .about__name { margin-top:0; font-size:clamp(2.2rem,4.5vw,4rem); overflow-wrap:anywhere; }
.about.about-resume .about__body { margin-top:1.2rem; }
.about.about-resume .about__body:empty { display:none; }
.about-resume .about__body .about__para { max-width:52rem; }
.about-resume .about__email { overflow-wrap:anywhere; }
.about-resume .about__block { clear:both; }
.about-resume .about__block h2 { font-size:calc(0.6875rem*1.5); }
.about-resume .about__email { font-size:calc(0.6875rem*1.5); }
.about-resume .about__wechat { font-size:calc(0.6875rem*1.5); margin-top:.6rem; }
@media(max-width:700px) { .about-resume .portrait { float:none; width:min(100%,22rem); margin:0 0 1.8rem; } }

/* V2：画廊加载失败或未找到当前作品的提示，不覆盖页面内容 */
.folio-notice { position:fixed; left:50%; bottom:2.2rem; transform:translateX(-50%); z-index:400; margin:0; padding:.7rem 1.2rem; max-width:min(90vw,32rem); border-radius:999px; background:rgba(12,12,13,.92); color:var(--ink); border:1px solid var(--rule); font-size:.86rem; letter-spacing:.04em; text-align:center; }

/* V2：分类分页导航 */
.pager { display:flex; flex-wrap:wrap; gap:.6rem; justify-content:center; align-items:center; margin:2.6rem 0 0; }
.pager__link { padding:.45rem .9rem; border:1px solid var(--rule); border-radius:999px; color:var(--ink); text-decoration:none; font-size:.82rem; letter-spacing:.06em; }
.pager__link:hover { border-color:var(--warm); color:var(--warm); }
.pager__link.is-current { background:var(--ink); color:var(--bg); border-color:var(--ink); }
@media(max-width:700px){ .pager { gap:.45rem; } .pager__link { padding:.4rem .7rem; font-size:.78rem; } }

/* 作者页肖像细金色外轮廓与衬线姓名。 */
.about-resume .portrait__frame { outline:1px solid #c9aa67; outline-offset:7px; box-shadow:0 0 0 1px #c9aa6733; }
.about-resume .about__name { font-family:"Noto Serif SC","Source Han Serif SC","Songti SC","SimSun",Georgia,serif; font-weight:400; }
.folio-hero-tilt .hero__image { aspect-ratio:3/2; height:auto; overflow:hidden; }
.folio-hero-tilt .hero__image .responsive-image { aspect-ratio:3/2!important; height:100%; }
.folio-hero-tilt .hero__image img { width:100%; height:100%; object-fit:cover; }

@font-face { font-family:PortfolioName; src:url("/assets/name-serif.woff2") format("woff2"); font-display:swap; }
.about-resume .about__name { font-family:PortfolioName,"SimSun",serif; }
.about-resume .portrait__frame { outline:1px solid #d9b457; box-shadow:0 0 0 1px #d9b45766; }

/* 首页全宽横幅轮播；图片只在展示卡片中裁切。 */
.home-carousel { position:relative; width:100%; aspect-ratio:2/1; min-height:0; overflow:hidden; }
.home-carousel .carousel-slide { position:absolute; inset:0; display:block; opacity:0; visibility:hidden; pointer-events:none; transition:opacity 900ms ease,visibility 900ms; }
.home-carousel .carousel-slide.is-active { opacity:1; visibility:visible; pointer-events:auto; }
.home-carousel .hero__image { max-height:none; position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto; }
.home-carousel .hero__image .responsive-image { width:100%; height:100%; aspect-ratio:auto!important; }
.home-carousel .hero__image img { width:100%; height:100%; object-fit:cover; object-position:center; }
.home-carousel .hero__plate { position:absolute; bottom:2.8rem; left:0; right:0; z-index:2; }
.home-carousel .hero__link::after { content:""; position:absolute; inset:40% 0 0; background:linear-gradient(transparent,#0009); pointer-events:none; }
.carousel-controls { position:absolute; z-index:4; right:clamp(1rem,4vw,4rem); bottom:1rem; display:flex; gap:.6rem; }
.carousel-controls button { border:1px solid #ffffff77; background:#10101080; color:#fff; padding:.55rem .8rem; cursor:pointer; font:inherit; font-size:.75rem; }
.home-carousel + .section .section__head .label,.home-carousel + .section .section__head .catalogue-no { font-size:1.375rem; }
@media(max-width:700px) { .home-carousel { aspect-ratio:3/2; } .home-carousel .hero__plate { bottom:3.5rem; } .home-carousel .hero__place { display:none; } .home-carousel .hero__title { font-size:clamp(1.3rem,5vw,2.2rem); } }
@media(prefers-reduced-motion:reduce) { .home-carousel .carousel-slide { transition:none; } }

/* 轮播精修：轻量文字、图形切换和细圆点。 */
.home-carousel .hero__title { font-size:clamp(1.3rem,2.2vw,2rem); font-weight:300; letter-spacing:.08em; line-height:1.3; }
.home-carousel .hero__no { font-size:.68rem; font-weight:400; letter-spacing:.16em; }
.home-carousel .hero__place { font-size:.78rem; font-weight:400; letter-spacing:.06em; max-width:38rem; line-height:1.8; }
.home-carousel .hero__plate { bottom:4.2rem; }
.home-carousel + .section .section__head h2 { font-weight:700; }
.carousel-controls { align-items:center; gap:.7rem; }
.carousel-controls button { padding:0; width:36px; height:36px; display:grid; place-items:center; border:0; border-radius:50%; background:transparent; font-size:1.6rem; font-weight:300; opacity:.8; transition:opacity .2s,background .2s; }
.carousel-controls button:hover,.carousel-controls button:focus-visible { opacity:1; background:#ffffff18; }
.carousel-controls [data-carousel-action="pause"] { font-size:.8rem; letter-spacing:-.15em; }
.carousel-dots { display:flex; align-items:center; gap:0; }
.carousel-controls .carousel-dot { width:24px; height:36px; border-radius:0; }
.carousel-dot::after { content:""; width:4px; height:4px; border:1px solid #fff; border-radius:50%; opacity:.6; }
.carousel-dot.is-current::after { background:#fff; opacity:1; }
@media(max-width:700px) { .home-carousel .hero__title { font-size:1.1rem; letter-spacing:.05em; } .home-carousel .hero__plate { bottom:3.6rem; } .carousel-controls { gap:.15rem; right:.6rem; bottom:.4rem; } .carousel-controls .carousel-dot { width:19px; } }

/* 首页001参数浮层样例，保留原图和点击交互。 */
.home-grid .parameter-demo .plate__overlay { display:flex; padding:3.4rem 1.1rem 1.1rem; gap:.4rem; color:#fff; text-align:left; background:linear-gradient(transparent,#08090aeF); }
.parameter-demo__camera { font-size:.85rem; letter-spacing:.06em; font-weight:500; }
.parameter-demo__lens { font-size:.68rem; color:#e0ddd5; line-height:1.5; }
.parameter-demo__exposure { font-family:var(--font-mono,monospace); font-size:.73rem; letter-spacing:.04em; color:#e1c48c; }
.parameter-demo__date { font-size:.63rem; color:#bcb8b0; letter-spacing:.08em; }
.home-grid .parameter-demo:hover .plate__title,.home-grid .parameter-demo:focus-visible .plate__title { visibility:hidden; }
.home-grid .parameter-demo:focus-visible .plate__overlay { opacity:1; transform:translateY(0); }

.home-grid .parameter-demo:hover .plate__overlay { opacity:1!important; transform:translateY(0); }

/* 分类页悬停时复用首页参数浮层，已有 EXIF 才显示对应参数，不伪造数据。 */
.grid .parameter-demo .plate__overlay { display:flex; padding:3.4rem 1.1rem 1.1rem; gap:.4rem; color:#fff; text-align:left; background:linear-gradient(transparent,#08090aeF); }
.grid .parameter-demo__camera { font-size:.85rem; letter-spacing:.06em; font-weight:500; }
.grid .parameter-demo__lens { font-size:.68rem; color:#e0ddd5; line-height:1.5; }
.grid .parameter-demo__exposure { font-family:var(--font-mono,monospace); font-size:.73rem; letter-spacing:.04em; color:#e1c48c; }
.grid .parameter-demo__date { font-size:.63rem; color:#bcb8b0; letter-spacing:.08em; }

/* 人像索引样例：缩略图高度受横线约束，鼠标靠近时采用 Dock 式联动放大。 */
.index__item:has(.index__thumbs) { grid-template-columns:3rem auto minmax(0,1fr) auto; align-items:center; gap:clamp(.7rem,1.6vw,1.4rem); }
.index__thumbs { display:flex; align-items:center; gap:.6048rem; min-width:0; height:clamp(4.608rem,7.2vw,6.912rem); padding:.35rem 0; overflow:visible; }
.index__thumb { width:clamp(4.608rem,7.776vw,8.064rem); height:100%; min-width:0; object-fit:cover; border-radius:3px; opacity:.5; filter:grayscale(1); transform:scale(var(--dock-scale,1)); transform-origin:center bottom; transition:transform 260ms cubic-bezier(.16,.8,.24,1), filter 220ms ease, opacity 220ms ease; box-shadow:0 1px 0 #0002; }
.index__thumb:hover { --dock-scale:1.55; z-index:2; opacity:1; filter:grayscale(0) brightness(1.08); }
.index__item:has(.index__thumbs) .index__name { color:#8f8e8a; background-image:linear-gradient(to bottom,#fff 0%,#fff 100%); background-repeat:no-repeat; background-size:100% 0%; background-position:0 0; -webkit-background-clip:text; background-clip:text; transition:background-size 420ms ease,color 420ms ease; }
.index__item:has(.index__thumbs):hover .index__name,.index__item:has(.index__thumbs):focus-within .index__name { color:transparent; background-size:100% 100%; }
.index__item:has(.index__thumbs):hover { padding-left:0; }
@media(max-width:700px) { .index__item:has(.index__thumbs) { grid-template-columns:2.25rem 1fr auto; } .index__item:has(.index__thumbs) .index__thumbs { grid-column:2 / -1; grid-row:2; height:4.08rem; margin-top:.25rem; } .index__item:has(.index__thumbs) .index__arrow { grid-column:3; grid-row:1; } }
@media(prefers-reduced-motion:reduce) { .index__thumb { transition:none; transform:none!important; } .index__item:has(.index__thumbs) .index__name { transition:none; } }

/* 仅001：悬停时变为细小圆角，图片及参数浮层一起裁切。 */
.home-grid .parameter-demo .plate__frame { border-radius:0; transition:transform 220ms ease,box-shadow 220ms ease,border-radius 220ms ease; }
@media(hover:hover) and (pointer:fine) { .home-grid .parameter-demo:hover .plate__frame { border-radius:16px; } }
@media(prefers-reduced-motion:reduce) { .home-grid .parameter-demo .plate__frame { transition:none; } }

/* 人像恢复与其他分类一致，仅将左侧数字放大1.5倍。 */
.index__item:has(.index__thumbs) .catalogue-no { font-size:1.05em; }

/* 分类卡片 hover 金色外框渐出 + 微微上浮（全站分类页，2026-10-21 用户确认推广）。 */
body[data-cat] .grid .grid__cell .plate__frame { transition:box-shadow .4s ease, transform .3s ease; }
body[data-cat] .grid .grid__cell .plate__frame::before {
  content:""; position:absolute; inset:-8px; z-index:3; pointer-events:none;
  border:1px solid rgba(217,180,87,.55); box-shadow:0 0 0 1px rgba(217,180,87,.18);
  opacity:0; transition:opacity .4s ease;
}
@media(hover:hover) and (pointer:fine) {
  body[data-cat] .grid .grid__cell .plate:hover .plate__frame,
  body[data-cat] .grid .grid__cell .plate:focus-visible .plate__frame {
    overflow:visible;
    transform:translateY(-3px);
    box-shadow:0 12px 24px -12px rgba(0,0,0,.55);
    transition:box-shadow .9s ease, transform .3s ease;
  }
  body[data-cat] .grid .grid__cell .plate:hover .plate__frame::before,
  body[data-cat] .grid .grid__cell .plate:focus-visible .plate__frame::before { opacity:1; transition:opacity .9s ease; }
}
@media(prefers-reduced-motion:reduce) {
  body[data-cat] .grid .grid__cell .plate__frame,
  body[data-cat] .grid .grid__cell .plate__frame::before { transition:none; }
}
