/* ==========================================================================
   style.css — 全站样式
   顺序：变量 / 基础 / 导航 / 幕与视差 / 首页 / 通用板块 / 作品 / 经历
         / 教育荣誉 / 联系 / 狗层 / 大图 / 响应式
   所有可调参数集中在 :root
   ========================================================================== */

:root{
  --paper:#FFFFFF;
  --wash:#FBFAF6;
  --kraft:#E4D6BC;
  --ink:#282520;
  --ink2:#544E45;
  --ink3:#837B71;
  --line:#D8D2C6;
  --brown:#6F5230;
  --acc:var(--brown);

  --pad:clamp(20px,3.4vw,56px);
  --disp:"Century Gothic","Avenir Next","Futura","Questrial","Trebuchet MS","PingFang SC",sans-serif;
  --cn:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Source Han Sans SC",sans-serif;

  --dur-fast:.25s;
  --dur:.6s;
  --ease:cubic-bezier(.16,1,.3,1);
}

*{box-sizing:border-box;margin:0;padding:0;}
html{
  scroll-behavior:auto;
  /* 原生吸附力度不可控，改由 js/main.js 的 settleToSection() 精确对齐。
     若想改回浏览器原生吸附，把下一行注释打开并把 CONFIG.snap 设为 false。 */
  /* scroll-snap-type:y mandatory; */
  scroll-padding-top:0;
}
body{
  font-family:var(--disp);font-weight:300;background:var(--wash);color:var(--ink);
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
::selection{background:var(--kraft);color:var(--ink);}

body::after{
  content:"";position:fixed;inset:0;z-index:900;pointer-events:none;opacity:.3;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNois\
      e' baseFrequency='.92' numOctaves='4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.26'/%3E%3C/svg%3E");
}

/* ---------- 导航 ---------- */
#nav{
  position:fixed;top:0;left:0;right:0;z-index:840;display:flex;justify-content:center;
  align-items:center;gap:clamp(16px,3.4vw,58px);padding:clamp(16px,2.1vw,30px) var(--pad) 0;
}
#nav::before{
  content:"";position:absolute;left:0;right:0;top:0;height:calc(100% + 22px);z-index:-1;
  background:linear-gradient(to bottom,rgba(251,250,246,.94) 40%,rgba(251,250,246,0));
  pointer-events:none;
}
#nav a{
  font-size:clamp(12px,1.05vw,16px);font-weight:400;letter-spacing:.06em;padding:0 2px 9px;
  border-bottom:1.6px solid transparent;transition:color var(--dur-fast);white-space:nowrap;
}
html[data-lang="zh"] #nav a{font-family:var(--cn);}
#nav a:hover{color:var(--acc);}
#nav a.on{border-bottom-color:var(--ink);}

#lang{position:fixed;top:clamp(14px,1.9vw,26px);right:var(--pad);z-index:850;display:flex;
  align-items:center;gap:9px;}
#lang button{font-size:clamp(11px,.95vw,14px);letter-spacing:.1em;color:var(--ink3);
  padding:2px 1px;border-bottom:1.6px solid transparent;transition:color var(--dur-fast);}
#lang button.btn-cn{font-family:var(--cn);}
#lang button:hover{color:var(--acc);}
#lang button.on{color:var(--ink);border-bottom-color:var(--ink);}
#lang s{text-decoration:none;color:var(--line);font-size:12px;}

#idx{position:fixed;right:clamp(10px,1.5vw,22px);top:50%;transform:translateY(-50%);z-index:600;
  display:flex;flex-direction:column;gap:9px;align-items:flex-end;}
#idx b{width:9px;height:1.5px;background:var(--ink3);cursor:pointer;transition:all var(--dur-fast);}
#idx b.on{width:26px;background:var(--acc);}

/* ---------- 幕与视差 ---------- */
.sec{
  position:relative;min-height:100vh;display:flex;flex-direction:column;justify-content:center;
  padding:clamp(78px,9vh,120px) var(--pad) clamp(52px,7vh,86px);overflow:hidden;
  scroll-snap-align:start;
}
.sec-tint{background:transparent;}
.inner{width:100%;max-width:1320px;margin:0 auto;position:relative;z-index:4;}
.inner.wide{max-width:none;}
.par{will-change:transform;}

.tag-tl{position:absolute;left:var(--pad);top:clamp(56px,7vh,86px);z-index:5;
  font-size:clamp(9px,.72vw,11px);letter-spacing:.24em;text-transform:uppercase;color:var(--ink3);}
html[data-lang="zh"] .tag-tl span{font-family:var(--cn);letter-spacing:.12em;}

/* ---------- 通用排版 ---------- */
.kick{font-size:clamp(9.5px,.78vw,11.5px);letter-spacing:.3em;text-transform:uppercase;
  color:var(--ink3);margin-bottom:clamp(12px,1.4vw,20px);}
.kick.mt{margin-top:clamp(18px,2.4vh,30px);}
html[data-lang="zh"] .kick{font-family:var(--cn);letter-spacing:.16em;}
.disp{font-weight:300;letter-spacing:.17em;text-transform:uppercase;line-height:1.05;
  font-size:clamp(30px,4.4vw,68px);}
.disp.sm{font-size:clamp(24px,3.3vw,48px);}
html[data-lang="zh"] .disp{font-family:var(--cn);letter-spacing:.14em;}
.rule{height:1px;background:var(--line);margin:clamp(16px,2vw,28px) 0;}
.lead{font-family:var(--cn);font-weight:300;font-size:clamp(12.5px,1.02vw,15.5px);
  line-height:2.1;color:var(--ink2);}
.lead p+p{margin-top:1.05em;}
.lead.center{text-align:center;}
html[data-lang="en"] .lead{font-family:var(--disp);font-weight:400;line-height:1.95;}
.grid-2{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(28px,4.5vw,84px);align-items:center;}

/* ---------- 首页 ---------- */
.sec-home{padding:0;}
.home-copy{position:absolute;left:clamp(36px,7.6vw,168px);top:32%;z-index:5;
  max-width:min(45%,790px);text-align:left;}
.home-name{font-weight:200;letter-spacing:.2em;font-size:clamp(34px,4.7vw,96px);line-height:1;}
html[data-lang="zh"] .home-name{font-family:var(--cn);letter-spacing:.16em;}
html[data-lang="en"] .home-name{font-size:clamp(26px,3.54vw,80px);letter-spacing:.15em;font-weight:300;}
.home-sub{font-size:clamp(10px,.79vw,16px);letter-spacing:.42em;color:var(--ink3);
  margin-top:clamp(10px,1.9vh,26px);text-transform:uppercase;}
.home-intro{font-family:var(--cn);font-weight:400;font-size:clamp(12.5px,1.05vw,22px);
  line-height:2.05;color:var(--ink2);margin-top:clamp(16px,3.6vh,46px);}
html[data-lang="en"] .home-intro{font-family:var(--disp);line-height:2;max-width:46ch;}
.home-tags{margin-top:clamp(16px,3.4vh,44px);display:flex;gap:clamp(8px,1.1vw,18px);flex-wrap:wrap;}
.home-tags b{font-family:var(--cn);font-weight:400;font-size:clamp(10.5px,.8vw,16.5px);
  color:var(--ink2);border:1px solid var(--line);border-radius:999px;padding:.45em 1.05em;
  letter-spacing:.04em;background:var(--wash);}
html[data-lang="en"] .home-tags b{font-family:var(--disp);}

.illu-shift{position:absolute;right:clamp(34px,17.6vw,340px);
  bottom:clamp(28px,4.6vh,56px);
  width:clamp(210px,27.8vw,560px);z-index:3;pointer-events:none;}
.illu-stage{position:relative;width:100%;}
.illu-person{width:100%;height:auto;will-change:transform,opacity;}

/* 首屏：人物与两只狗各自轻微浮动，周期错开避免同步 */
.illu-person{animation:floatA 7.5s ease-in-out infinite;}
.illu-dog1{animation:floatB 5.6s ease-in-out infinite;}
.illu-dog2{animation:floatC 9.2s ease-in-out infinite;}
@keyframes floatA{
  0%,100%{transform:translate3d(var(--ex,0px),0,0) rotate(0deg);}
  50%{transform:translate3d(var(--ex,0px),-6px,0) rotate(.18deg);}
}
@keyframes floatB{
  0%,100%{transform:translate3d(var(--ex,0px),0,0) rotate(0deg);}
  50%{transform:translate3d(calc(var(--ex,0px) + 1.5px),-9px,0) rotate(-.9deg);}
}
@keyframes floatC{
  0%,100%{transform:translate3d(var(--ex,0px),0,0) rotate(0deg);}
  50%{transform:translate3d(calc(var(--ex,0px) - 2px),-4.5px,0) rotate(.4deg);}
}

/* 首屏入场：只在首次载入播放一次 */
/* 入场动画的终态接入 --ex / --eo，好让退出位移能接管同一个元素 */
@keyframes heroIn{
  from{opacity:0;transform:translate3d(var(--ex,0px),26px,0);}
  to{opacity:var(--eo,1);transform:translate3d(var(--ex,0px),0,0);}
}
@keyframes heroInFig{
  from{opacity:0;transform:translate3d(34px,18px,0) scale(.985);}
  to{opacity:1;transform:none;}
}
.is-ready .home-name{animation:heroIn .9s var(--ease) .05s both;}
.is-ready .home-sub{animation:heroIn .9s var(--ease) .17s both;}
.is-ready .home-intro{animation:heroIn .9s var(--ease) .29s both;}
.is-ready .home-tags{animation:heroIn .9s var(--ease) .41s both;}
.is-ready .illu-stage{animation:heroInFig 1.15s var(--ease) .14s both;}
.is-ready .scroll-cue{animation:heroIn .8s var(--ease) 1.05s both;}
.home-name,.home-sub,.home-intro,.home-tags{will-change:transform,opacity;}

.scroll-cue{position:absolute;left:clamp(36px,7.6vw,168px);bottom:clamp(22px,3.4vh,42px);
  z-index:6;padding:0;}
.scroll-cue svg{width:clamp(22px,1.6vw,34px);height:auto;animation:cue 3.1s ease-in-out infinite;}
.scroll-cue svg path{stroke:var(--ink2);stroke-width:1.25;fill:none;stroke-linecap:round;
  stroke-linejoin:round;transition:stroke var(--dur-fast);}
.scroll-cue:hover svg path{stroke:var(--acc);}
@keyframes cue{
  0%{opacity:0;transform:translateY(-7px);}
  28%{opacity:.72;transform:translateY(0);}
  62%{opacity:.72;transform:translateY(0);}
  100%{opacity:0;transform:translateY(9px);}
}

/* ---------- 第二页场景背景 ----------
   一层装饰图，z-index 压在人物之下。想挪某个元素只改它那一行的 left/top/width。
   动画：cloudDrift 云 / bgBob 上下浮 / bgSway 摇摆 / leafFall 落叶
   ------------------------------------------------------------------ */
.p2-bg{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;
  transform:translate3d(var(--ex,0px),0,0);}
.p2-bg img{position:absolute;height:auto;will-change:transform;}

/* 远景：云与远处的树丛 */
.bg-cloud-a{left:74%;top:20%;width:23vw;opacity:.85;animation:cloudDrift 26s ease-in-out infinite;}
.bg-cloud-b{left:88%;top:28%;width:18vw;opacity:.6;animation:cloudDrift 32s ease-in-out -9s infinite;}
.bg-cloud-c{left:-4%;top:17%;width:19vw;opacity:.5;animation:cloudDrift 30s ease-in-out -16s infinite;}
.bg-bushtop{left:1%;top:25%;width:15vw;opacity:.5;animation:bgSway 13s ease-in-out infinite;}
.bg-treer{left:75%;top:35%;width:18vw;opacity:.62;animation:bgSway 11s ease-in-out -3s infinite;}
.bg-bushr1{left:86%;top:42%;width:16vw;opacity:.5;animation:bgSway 15s ease-in-out -6s infinite;}
.bg-bushr2{left:70%;top:45%;width:13vw;opacity:.4;animation:bgSway 12.5s ease-in-out -8s infinite;}
.bg-bushl{left:-4%;top:60%;width:13vw;opacity:.45;animation:bgSway 14s ease-in-out -4s infinite;}

/* 左侧：路灯与长椅 */
.bg-lamp{left:4.8%;top:44%;width:5.6vw;animation:bgBob 9s ease-in-out infinite;}
.bg-bench{left:3.4%;top:65%;width:12vw;animation:bgBob 10.5s ease-in-out -3s infinite;}

/* 地面与草花 */
.bg-grassl{left:1.5%;top:82%;width:10vw;animation:bgSway 8s ease-in-out infinite;}

/* 地上的小石头 */

/* 空中的鸟、风线与落叶 */
.bg-birds{left:42%;top:27%;width:5.5vw;opacity:.6;animation:bgBob 7s ease-in-out infinite;}
.bg-wind{left:65%;top:31%;width:6.5vw;opacity:.5;animation:bgBob 8.5s ease-in-out -3s infinite;}
.bg-motion{left:24%;top:50%;width:5.5vw;opacity:.45;animation:bgBob 9.5s ease-in-out -5s infinite;}
.bg-leaf1{left:39%;top:20%;width:2.6vw;animation:leafFall 11s ease-in-out infinite;}
.bg-leaf2{left:72%;top:19%;width:3vw;animation:leafFall 13s ease-in-out -4s infinite;}
.bg-leaf3{left:70.5%;top:29%;width:2.4vw;animation:leafFall 12s ease-in-out -7s infinite;}
.bg-leaf5{left:54%;top:57%;width:2.2vw;animation:leafFall 10.5s ease-in-out -6s infinite;}

/* 地面一组：在 .p2-stage 内，百分比相对人物舞台，屏幕再宽也贴着工具包 */
.p2-ground{position:absolute;inset:0;z-index:0;pointer-events:none;
  transform:translate3d(var(--ex,0px),0,0);}
.bg-ground{left:78%;top:80%;width:44%;opacity:.8;animation:bgBob 12s ease-in-out -5s infinite;}
.bg-grassr{left:112%;top:58%;width:17%;animation:bgSway 9.5s ease-in-out -2s infinite;}
.bg-flop{left:69%;top:76%;width:9.5%;animation:bgSway 7.5s ease-in-out -1s infinite;}
.bg-flob{left:116%;top:69%;width:10%;animation:bgSway 8.5s ease-in-out -4s infinite;}
.bg-stone1{left:42%;top:96%;width:8%;animation:bgBob 11s ease-in-out -2s infinite;}
.bg-stone2{left:96%;top:104%;width:6.6%;animation:bgBob 13s ease-in-out -6s infinite;}
.bg-stone3{left:105%;top:107%;width:5.4%;animation:bgBob 12s ease-in-out -9s infinite;}
.bg-scatter{left:6%;top:99%;width:12%;opacity:.7;animation:bgBob 10s ease-in-out -4s infinite;}
.bg-leaf4{left:61%;top:95%;width:4%;animation:leafFall 14s ease-in-out -2s infinite;}

@keyframes cloudDrift{
  0%,100%{transform:translate3d(0,0,0);}
  50%{transform:translate3d(22px,-6px,0);}
}
@keyframes bgBob{
  0%,100%{transform:translate3d(0,0,0);}
  50%{transform:translate3d(0,-7px,0);}
}
@keyframes bgSway{
  0%,100%{transform:rotate(-1.1deg);}
  50%{transform:rotate(1.1deg);}
}
@keyframes leafFall{
  0%{transform:translate3d(0,0,0) rotate(0deg);}
  25%{transform:translate3d(-9px,12px,0) rotate(-13deg);}
  50%{transform:translate3d(5px,22px,0) rotate(9deg);}
  75%{transform:translate3d(-6px,11px,0) rotate(-5deg);}
  100%{transform:translate3d(0,0,0) rotate(0deg);}
}
/* 树丛草丛以根部为轴摇摆，看起来才像被风吹 */
.bg-bushtop,.bg-treer,.bg-bushr1,.bg-bushr2,.bg-bushl,
.bg-grassl,.bg-grassr,.bg-flop,.bg-flob{transform-origin:50% 92%;}
.p2-ground img{position:absolute;height:auto;will-change:transform;}

/* ---------- 第二页插画（狗拽人；人物/狗/工具包都是可点击标签） ---------- */
.sec-about{padding:0;overflow:visible;}
.p2-shift{position:absolute;left:clamp(90px,13vw,300px);bottom:clamp(20px,4.2vh,56px);
  width:clamp(340px,60vw,1020px);z-index:3;pointer-events:none;}
.p2-stage{position:relative;width:100%;aspect-ratio:1536/1024;overflow:visible;}
.p2-stage img{position:absolute;height:auto;pointer-events:none;will-change:transform,opacity;}
.p2-collie{left:0%;top:55%;width:47%;z-index:1;
  transform:translate3d(calc(var(--ex,0px) + var(--fx,0px)),var(--fy,0px),0)
    rotate(var(--fr,0deg)) scale(calc(var(--hv,1) * var(--fs,1)));}
.p2-cock{left:2%;top:7%;width:28%;z-index:2;
  transform:translate3d(calc(var(--ex,0px) + var(--fx,0px)),var(--fy,0px),0)
    rotate(var(--fr,0deg)) scale(calc(var(--hv,1) * var(--fs,1)));}
.p2-person{left:48%;top:12%;width:48%;z-index:5;transform-origin:48% 58%;
  transform:translate3d(calc(var(--ex,0px) + var(--fx,0px)),var(--fy,0px),0)
    rotate(calc(-30deg + var(--fr,0deg))) scale(calc(var(--hv,1) * var(--fs,1)));}
.p2-toolbox{left:88%;top:44%;width:30%;z-index:6;
  transform:translate3d(calc(var(--ex,0px) + var(--fx,0px)),var(--fy,0px),0)
    rotate(calc(6deg + var(--fr,0deg))) scale(calc(var(--hv,1) * var(--fs,1)));}
/* 可点击标签：悬停加一层发白的高亮 */
@property --hv{syntax:'<number>';inherits:false;initial-value:1;}
.p2-stage img.p2-hot{pointer-events:auto;cursor:pointer;outline:none;
  transition:--hv .3s var(--ease),filter .3s var(--ease);}
.p2-stage img.p2-hot:hover,.p2-stage img.p2-hot:focus-visible{--hv:1.06;
  filter:drop-shadow(0 clamp(16px,2.4vh,26px) 16px rgba(40,37,32,.32));}
/* 绳子以卡扣为原点旋转缩放，卡扣钉在项圈上 */
.p2-leash{height:auto;z-index:4;}
.p2-leash-brown{left:12.92%;top:-17.81%;width:42%;
  transform-origin:2.46% 95%;
  transform:translate3d(calc(var(--ex,0px) + var(--fx,0px)),var(--fy,0px),0)
    rotate(calc(55.24deg + var(--fr,0deg))) scale(calc(1.006 * var(--fs,1)));}
.p2-leash-blue{left:13.96%;top:40.87%;width:42%;
  transform-origin:2.33% 94.37%;
  transform:translate3d(calc(var(--ex,0px) + var(--fx,0px)),var(--fy,0px),0)
    rotate(calc(12.26deg + var(--fr,0deg))) scale(calc(.856 * var(--fs,1)));}

/* 第二页：每个图标独立浮动（位移幅度 / 缩放幅度 / 周期各不相同） */
@property --fx{syntax:'<length>';inherits:false;initial-value:0px;}
@property --fy{syntax:'<length>';inherits:false;initial-value:0px;}
@property --fr{syntax:'<angle>';inherits:false;initial-value:0deg;}
@property --fs{syntax:'<number>';inherits:false;initial-value:1;}
@keyframes p2-drift-collie{
  0%,100%{--fx:0px;--fy:0px;--fr:0deg;--fs:1;}
  28%{--fx:11px;--fy:-18px;--fr:1.1deg;--fs:1.018;}
  58%{--fx:-9px;--fy:-8px;--fr:-0.85deg;--fs:1.006;}
  82%{--fx:-6px;--fy:-15px;--fr:-1.05deg;--fs:1.014;}
}
@keyframes p2-drift-cock{
  0%,100%{--fx:0px;--fy:0px;--fr:0deg;--fs:1;}
  22%{--fx:-5px;--fy:-9px;--fr:-1.35deg;--fs:1.012;}
  48%{--fx:4px;--fy:-14px;--fr:0.75deg;--fs:1.004;}
  76%{--fx:-3px;--fy:-6px;--fr:-0.4deg;--fs:1.009;}
}
@keyframes p2-drift-person{
  0%,100%{--fx:0px;--fy:0px;--fr:0deg;--fs:1;}
  35%{--fx:3px;--fy:-7px;--fr:0.42deg;--fs:1.005;}
  62%{--fx:-4px;--fy:-11px;--fr:-0.38deg;--fs:1.009;}
  88%{--fx:2px;--fy:-4px;--fr:0.22deg;--fs:1.003;}
}
@keyframes p2-drift-toolbox{
  0%,100%{--fx:0px;--fy:0px;--fr:0deg;--fs:1;}
  24%{--fx:10px;--fy:-16px;--fr:2.1deg;--fs:1.028;}
  52%{--fx:-7px;--fy:-5px;--fr:-1.4deg;--fs:0.992;}
  78%{--fx:5px;--fy:-13px;--fr:1.05deg;--fs:1.016;}
}
@keyframes p2-drift-leash-a{
  0%,100%{--fx:0px;--fy:0px;--fr:0deg;--fs:1;}
  40%{--fx:2px;--fy:-5px;--fr:0.55deg;--fs:1.008;}
  72%{--fx:-2px;--fy:-3px;--fr:-0.38deg;--fs:1.003;}
}
@keyframes p2-drift-leash-b{
  0%,100%{--fx:0px;--fy:0px;--fr:0deg;--fs:1;}
  32%{--fx:-3px;--fy:-4px;--fr:-0.48deg;--fs:1.006;}
  68%{--fx:2px;--fy:-7px;--fr:0.35deg;--fs:1.002;}
}
.sec-about.is-active .p2-collie{animation:p2-drift-collie 7.4s ease-in-out -2.2s infinite;}
.sec-about.is-active .p2-cock{animation:p2-drift-cock 3.9s ease-in-out -.45s infinite;}
.sec-about.is-active .p2-person{animation:p2-drift-person 9.6s ease-in-out -3.8s infinite;}
.sec-about.is-active .p2-toolbox{animation:p2-drift-toolbox 3.4s ease-in-out -.85s infinite;}
.sec-about.is-active .p2-leash-brown{animation:p2-drift-leash-a 5.3s ease-in-out -2.6s infinite;}
.sec-about.is-active .p2-leash-blue{animation:p2-drift-leash-b 4.6s ease-in-out -1.05s infinite;}

/* 悬停小纸签：贴胶带的小纸条，跟随对应图案出现 */
.p2-tag{position:absolute;z-index:8;pointer-events:none;white-space:nowrap;
  background:var(--paper);border:1px solid var(--line);border-radius:2px;
  padding:.55em 1.05em;font-family:var(--cn);font-weight:300;
  font-size:clamp(11px,.95vw,15px);letter-spacing:.12em;color:var(--ink2);
  box-shadow:0 10px 22px rgba(40,37,32,.13);
  opacity:0;transform:translateY(8px) rotate(var(--tr,-3deg));
  transition:opacity .28s var(--ease),transform .34s var(--ease);}
html[data-lang="en"] .p2-tag{font-family:var(--disp);letter-spacing:.14em;}
.p2-tag::before{content:"";position:absolute;left:50%;top:0;
  width:clamp(26px,2.6vw,40px);height:clamp(10px,1vw,15px);
  background:rgba(228,214,188,.8);border:1px solid rgba(111,82,48,.1);
  mix-blend-mode:multiply;transform:translate(-50%,-56%) rotate(var(--tapeR,3deg));}
.p2-tag-cock{left:27%;top:0%;--tr:-4deg;}
.p2-tag-collie{left:33%;top:49.5%;--tr:3deg;--tapeR:-4deg;}
.p2-tag-person{left:79%;top:3%;--tr:3deg;--tapeR:-5deg;}
.p2-tag-tb{left:93%;top:35%;--tr:-3deg;}
.p2-stage:has(.p2-cock:hover) .p2-tag-cock,.p2-stage:has(.p2-cock:focus-visible) .p2-tag-cock,
.p2-stage:has(.p2-collie:hover) .p2-tag-collie,
.p2-stage:has(.p2-collie:focus-visible) .p2-tag-collie,
.p2-stage:has(.p2-person:hover) .p2-tag-person,
.p2-stage:has(.p2-person:focus-visible) .p2-tag-person,
.p2-stage:has(.p2-toolbox:hover) .p2-tag-tb,
.p2-stage:has(.p2-toolbox:focus-visible) .p2-tag-tb{
  opacity:1;transform:translateY(0) rotate(var(--tr,-3deg));}

/* 标签放大翻转 → 进入内页 */
/* z-index 压在导航(600)之下：过场时顶部导航和语言切换始终在，才不像整页刷新 */
#flipFx{position:fixed;inset:0;z-index:500;pointer-events:none;perspective:1500px;}
.flip-wrap{position:absolute;transform-style:preserve-3d;will-change:transform,opacity;
  filter:drop-shadow(0 18px 40px rgba(40,37,32,.2));}
/* 卡片飞向中央的同时，第二页的插画淡出，避免背景硬切 */
body.flip-transition .p2-shift{opacity:0;transition:opacity .34s ease .04s;}
.flip-wrap img{width:100%;height:100%;object-fit:contain;}

/* ---------- 技能 ---------- */
.chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:clamp(16px,2vw,26px);}
.chips b{font-family:var(--cn);font-weight:300;font-size:clamp(10.5px,.85vw,12.5px);
  border:1px solid var(--line);border-radius:999px;padding:6px 14px;color:var(--ink2);
  transition:all var(--dur-fast);}
html[data-lang="en"] .chips b{font-family:var(--disp);}.chips b:hover{border-color:var(--acc);color:var(--acc);}

/* ---------- 作品 ---------- */
.head-row{display:flex;justify-content:space-between;align-items:flex-end;gap:26px;
  margin-bottom:clamp(18px,2.2vw,32px);max-width:1320px;margin-left:auto;margin-right:auto;}
.rail{display:flex;gap:clamp(14px,1.7vw,28px);overflow-x:auto;cursor:grab;
  padding:6px var(--pad) 10px;margin:0 calc(var(--pad) * -1);scrollbar-width:none;
  overscroll-behavior-x:contain;}
.rail::-webkit-scrollbar{display:none;}.rail.grabbing{cursor:grabbing;}
.card{flex:0 0 auto;width:clamp(220px,24vw,352px);}
.card .im{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--wash);
  border:1px solid var(--line);}
.card .im img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease);}
.card:hover .im img{transform:scale(1.045);}
.card .no{position:absolute;left:9px;top:8px;z-index:2;font-size:10px;letter-spacing:.16em;
  background:rgba(255,255,255,.86);padding:3px 8px;}
.card .vw{position:absolute;right:9px;bottom:8px;z-index:2;font-size:10px;letter-spacing:.2em;
  background:rgba(255,255,255,.86);padding:3px 8px;opacity:0;transition:opacity var(--dur-fast);}
.card:hover .vw{opacity:1;}
.card h4{font-family:var(--cn);font-weight:400;font-size:clamp(12.5px,1.02vw,15px);
  margin-top:14px;letter-spacing:.04em;}
.card p{font-family:var(--cn);font-weight:300;font-size:clamp(10.5px,.84vw,12.5px);
  line-height:1.8;color:var(--ink2);margin-top:6px;}
html[data-lang="en"] .card h4,html[data-lang="en"] .card p{font-family:var(--disp);}
.rail-end{flex:0 0 auto;width:clamp(80px,9vw,140px);display:grid;place-items:center;
  font-size:10px;letter-spacing:.28em;color:var(--ink3);}
.rail-nav{display:flex;gap:8px;}
.rail-nav button{width:clamp(30px,2.5vw,38px);height:clamp(30px,2.5vw,38px);
  border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;
  font-size:15px;color:var(--ink2);transition:all var(--dur-fast);}
.rail-nav button:hover{border-color:var(--acc);color:var(--acc);}
.hint{font-size:clamp(9px,.72vw,11px);letter-spacing:.2em;color:var(--ink3);}
html[data-lang="zh"] .hint{font-family:var(--cn);letter-spacing:.1em;}

/* ---------- 第三页：五个箱子 ----------
   堆叠：下排 产品/数字交互/海报 三只，上排 落地项目/其他 两只压在箱顶上。
   挪位置只改 .bx-* 的 left/bottom/width。悬停 = 阴影 + 换成开箱图。 */
.sec.sec-boxes{padding-top:clamp(70px,7.5vh,96px);overflow:visible;}
.bx-wrap{position:relative;width:min(78vw,1180px);
  margin:clamp(6px,1.5vh,20px) auto 0;overflow:visible;}
.bx-stage{position:relative;z-index:2;width:100%;height:min(62vh,600px);margin:0;overflow:visible;}
/* 第三页最底层：地毯（在箱子正下方，图层在箱子下） */
.bx-carpet{position:absolute;left:50%;bottom:clamp(-38%,-27vh,-20%);width:108%;
  max-width:1120px;height:auto;z-index:1;pointer-events:none;transform-origin:center bottom;
  transform:translate3d(calc(-50% + var(--ex,0px) + var(--fx,0px)),var(--fy,0px),0)
    rotate(var(--fr,0deg));
  will-change:transform,opacity;}
/* 第三页左侧：猪猪妹嗅闻 */
.bx-dog-sniff{position:absolute;left:-4%;bottom:4%;width:clamp(118px,17vw,248px);
  height:auto;z-index:8;pointer-events:none;transform-origin:center bottom;
  transform:translate3d(calc(var(--ex,0px) + var(--fx,0px)),var(--fy,0px),0)
    rotate(var(--fr,0deg));
  will-change:transform,opacity;}
.bx-dog-jump{position:absolute;right:-4%;top:2%;width:clamp(200px,28vw,408px);
  height:auto;z-index:8;pointer-events:none;transform-origin:center bottom;
  transform:translate3d(calc(var(--ex,0px) + var(--fx,0px)),var(--fy,0px),0)
    rotate(var(--fr,0deg));
  will-change:transform,opacity;}
/* 命中区：图片本身不接事件，避免透明边界框互相抢点击。
   下排箱子的命中区裁掉顶部（那是上排箱子的身体），上排裁掉底部。 */
.bx{position:absolute;cursor:pointer;outline:none;pointer-events:none;
  transform-origin:center bottom;
  transform:translate3d(calc(var(--ex,0px) + var(--fx,0px)),var(--fy,0px),0)
    rotate(var(--fr,0deg));
  will-change:transform,opacity;
  transition:filter .38s var(--ease);}
.bx img{width:100%;height:auto;display:block;}
.bx .open{position:absolute;left:0;bottom:0;opacity:0;
  transform:scale(1);transform-origin:center bottom;
  transition:opacity .22s ease,transform .38s var(--ease);}
.bx .closed{transition:opacity .22s ease .06s;}
.bx-hit{position:absolute;inset:4% 3%;pointer-events:auto;cursor:pointer;}
.bx-product .bx-hit,.bx-ui .bx-hit,.bx-poster .bx-hit{top:20%;}
.bx-project .bx-hit,.bx-other .bx-hit{bottom:24%;}

/* 悬停：产生阴影、打开并放大箱内图标 */
.bx:hover,.bx:focus-visible{z-index:9;
  transform:translate3d(calc(var(--ex,0px) + var(--fx,0px)),calc(var(--fy,0px) - 8px),0)
    rotate(var(--fr,0deg));
  filter:drop-shadow(0 clamp(18px,2.6vh,30px) 22px rgba(40,37,32,.32));}
.bx:hover .open,.bx:focus-visible .open{opacity:1;transform:scale(1.32);transition-delay:.05s;}
.bx:hover .closed,.bx:focus-visible .closed{opacity:0;transition-delay:0s;}
/* 下排三只：紧挨着 */
.bx-product{left:9.5%;bottom:2%;width:30%;z-index:3;}
.bx-ui{left:34.5%;bottom:0;width:31.5%;z-index:4;}
.bx-poster{left:61%;bottom:2%;width:30%;z-index:3;}
/* 上排两只：压在下排箱顶的接缝上 */
.bx-project{left:20.5%;bottom:29%;width:27.5%;z-index:2;}
.bx-other{left:50%;bottom:30.5%;width:26.5%;z-index:2;}
/* 开箱图有的比合图高/矮，锚定底边，误差看不出来 */
.bx .open{width:100%;}

/* 第三页背景小图案：疏一点，别抢箱子的戏 */
.bx-decos{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;}
.bxg{position:absolute;height:auto;will-change:transform;
  transform:rotate(var(--r,0deg));}
.bxg-plane{left:12%;top:20%;width:clamp(30px,3vw,48px);opacity:.42;--r:-8deg;
  animation:bxgGlide 9.5s ease-in-out infinite;}
.bxg-star1{left:26%;top:13%;width:clamp(14px,1.4vw,22px);opacity:.46;--r:10deg;
  animation:bxgBob 6.4s ease-in-out -1.2s infinite;}
.bxg-star2{right:9%;top:52%;width:clamp(11px,1.1vw,17px);opacity:.4;--r:-14deg;
  animation:bxgBob 7.8s ease-in-out -3.4s infinite;}
.bxg-paw1{left:7%;bottom:13%;width:clamp(18px,1.8vw,28px);opacity:.38;--r:-22deg;
  animation:bxgBob 8.6s ease-in-out -2.1s infinite;}
.bxg-paw2{left:11.5%;bottom:7%;width:clamp(15px,1.5vw,24px);opacity:.32;--r:14deg;
  animation:bxgBob 7.2s ease-in-out -4.6s infinite;}
.bxg-arrow{right:13%;top:16%;width:clamp(26px,2.6vw,42px);opacity:.4;--r:24deg;
  animation:bxgSway 8s ease-in-out -1.8s infinite;}
.bxg-wind{left:40%;top:11%;width:clamp(38px,4vw,64px);opacity:.55;--r:-4deg;
  animation:bxgBob 9s ease-in-out -.6s infinite;}
.bxg-leaf{right:22%;bottom:9%;width:clamp(20px,2vw,32px);opacity:.7;--r:12deg;
  animation:bxgFall 12s ease-in-out -5s infinite;}
@keyframes bxgBob{
  0%,100%{transform:rotate(var(--r,0deg)) translateY(0);}
  50%{transform:rotate(calc(var(--r,0deg) + 4deg)) translateY(-9px);}
}
@keyframes bxgSway{
  0%,100%{transform:rotate(calc(var(--r,0deg) - 3deg)) translateY(0);}
  50%{transform:rotate(calc(var(--r,0deg) + 3deg)) translateY(-6px);}
}
@keyframes bxgGlide{
  0%,100%{transform:rotate(var(--r,0deg)) translate3d(0,0,0);}
  30%{transform:rotate(calc(var(--r,0deg) + 5deg)) translate3d(16px,-10px,0);}
  62%{transform:rotate(calc(var(--r,0deg) - 4deg)) translate3d(30px,3px,0);}
  84%{transform:rotate(calc(var(--r,0deg) + 2deg)) translate3d(12px,-5px,0);}
}
@keyframes bxgFall{
  0%{transform:rotate(var(--r,0deg)) translate3d(0,0,0);}
  30%{transform:rotate(calc(var(--r,0deg) - 15deg)) translate3d(-8px,10px,0);}
  60%{transform:rotate(calc(var(--r,0deg) + 10deg)) translate3d(6px,18px,0);}
  100%{transform:rotate(var(--r,0deg)) translate3d(0,0,0);}
}

/* 第三页停留：每个箱子独立摆动（幅度 / 周期各不相同） */
@keyframes bx-drift-product{
  0%,100%{--fx:0px;--fy:0px;--fr:0deg;}
  26%{--fx:7px;--fy:-11px;--fr:1.1deg;}
  54%{--fx:-5px;--fy:-6px;--fr:-0.75deg;}
  80%{--fx:-4px;--fy:-13px;--fr:-0.95deg;}
}
@keyframes bx-drift-ui{
  0%,100%{--fx:0px;--fy:0px;--fr:0deg;}
  30%{--fx:-3px;--fy:-5px;--fr:-0.55deg;}
  62%{--fx:2px;--fy:-8px;--fr:0.42deg;}
  86%{--fx:-2px;--fy:-3px;--fr:-0.28deg;}
}
@keyframes bx-drift-poster{
  0%,100%{--fx:0px;--fy:0px;--fr:0deg;}
  22%{--fx:-12px;--fy:-17px;--fr:-1.45deg;}
  48%{--fx:9px;--fy:-8px;--fr:1.05deg;}
  74%{--fx:6px;--fy:-15px;--fr:0.85deg;}
}
@keyframes bx-drift-project{
  0%,100%{--fx:0px;--fy:0px;--fr:0deg;}
  28%{--fx:10px;--fy:-19px;--fr:1.65deg;}
  56%{--fx:-8px;--fy:-9px;--fr:-1.2deg;}
  82%{--fx:-6px;--fy:-16px;--fr:-0.9deg;}
}
@keyframes bx-drift-other{
  0%,100%{--fx:0px;--fy:0px;--fr:0deg;}
  34%{--fx:-6px;--fy:-10px;--fr:-1.05deg;}
  64%{--fx:5px;--fy:-14px;--fr:0.72deg;}
  88%{--fx:3px;--fy:-5px;--fr:0.38deg;}
}
@keyframes bx-drift-dog{
  0%,100%{--fx:0px;--fy:0px;--fr:0deg;}
  24%{--fx:5px;--fy:-9px;--fr:0.85deg;}
  52%{--fx:-4px;--fy:-14px;--fr:-0.62deg;}
  78%{--fx:3px;--fy:-6px;--fr:0.4deg;}
}
@keyframes bx-drift-jump{
  0%,100%{--fx:0px;--fy:0px;--fr:0deg;}
  26%{--fx:-6px;--fy:-11px;--fr:-1.05deg;}
  54%{--fx:5px;--fy:-7px;--fr:0.78deg;}
  82%{--fx:-3px;--fy:-13px;--fr:-0.55deg;}
}
@keyframes bx-drift-carpet{
  0%,100%{--fx:0px;--fy:0px;--fr:0deg;}
  32%{--fx:4px;--fy:-5px;--fr:0.22deg;}
  58%{--fx:-3px;--fy:-7px;--fr:-0.16deg;}
  84%{--fx:2px;--fy:-4px;--fr:0.1deg;}
}
.sec-boxes.is-active .bx-carpet{animation:bx-drift-carpet 9.2s ease-in-out -2s infinite;}
.sec-boxes.is-active .bx-dog-sniff{animation:bx-drift-dog 5.4s ease-in-out -1.1s infinite;}
.sec-boxes.is-active .bx-dog-jump{animation:bx-drift-jump 4.8s ease-in-out -2.3s infinite;}
.sec-boxes.is-active .bx-product{animation:bx-drift-product 6.8s ease-in-out -1.6s infinite;}
.sec-boxes.is-active .bx-ui{animation:bx-drift-ui 4.2s ease-in-out -.35s infinite;}
.sec-boxes.is-active .bx-poster{animation:bx-drift-poster 8.4s ease-in-out -3.1s infinite;}
.sec-boxes.is-active .bx-project{animation:bx-drift-project 5.1s ease-in-out -2.4s infinite;}
.sec-boxes.is-active .bx-other{animation:bx-drift-other 7.6s ease-in-out -4.2s infinite;}

/* ---------- 箱子内页骨架（五页共用；填内容时整块 .wk-frame 替换） ---------- */
.sec-wk{padding-top:clamp(60px,6.5vh,80px);padding-bottom:clamp(24px,3vh,48px);}
.sec-wk .sub-head{margin-top:clamp(2px,.4vh,8px);}
.sec-wk .head-row{margin-bottom:clamp(8px,1vw,14px);}
.sec-wk .rule{margin:clamp(4px,.6vh,10px) 0;}
.wk-frame{display:grid;gap:clamp(14px,1.8vw,26px);margin-top:clamp(10px,1.6vh,22px);}
/* 占位块：虚线纸框 + 居中灰字，视觉上是「还没贴东西的相框」 */
.wk-ph{position:relative;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.55);border:1.6px dashed rgba(111,82,48,.32);border-radius:4px;
  color:var(--ink3);transition:border-color var(--dur-fast),background var(--dur-fast);}
.wk-ph::before{content:"+";position:absolute;left:clamp(12px,1.2vw,18px);top:clamp(6px,.8vh,12px);
  font-size:clamp(15px,1.4vw,21px);color:rgba(111,82,48,.4);font-weight:300;}
.wk-ph:hover{border-color:rgba(111,82,48,.55);background:rgba(255,255,255,.8);}
.wk-ph span{font-family:var(--cn);font-weight:300;font-size:clamp(10.5px,.85vw,13px);
  letter-spacing:.14em;}
html[data-lang="en"] .wk-ph span{font-family:var(--disp);}
.wk-hero{height:clamp(180px,30vh,300px);}
.wk-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(14px,1.8vw,26px);}
.wk-cell{aspect-ratio:4/3;flex-direction:column;gap:8px;}
.wk-cell i{font-style:normal;font-size:clamp(9.5px,.78vw,11.5px);letter-spacing:.22em;
  color:rgba(111,82,48,.45);}

/* ---------- 落地项目内页：双 CD 并排慢转（参数 CONFIG.pj） ---------- */
.sec-wk-pj.sec-sub{
  height:100vh;min-height:100vh;max-height:100vh;overflow:hidden;
  padding:clamp(68px,calc(5vh + 20px),82px) var(--pad) clamp(12px,1.8vh,28px);
  justify-content:flex-start;box-sizing:border-box;}
.sec-wk-pj.sec-sub .inner{display:flex;flex-direction:column;flex:1;min-height:0;width:100%;position:relative;}
.sec-wk-pj.sec-sub .sub-head{margin-top:clamp(4px,.5vh,10px);}
.sec-wk-pj.sec-sub .sub-head,
.sec-wk-pj.sec-sub .sub-bar{position:relative;z-index:12;flex-shrink:0;}
.sec-wk-pj.sec-sub .head-row{margin-bottom:clamp(5px,.6vw,10px);}
.sec-wk-pj.sec-sub .sub-bar{margin:clamp(2px,.3vh,6px) 0 clamp(3px,.4vh,8px);}
.pj{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;
  user-select:none;-webkit-user-select:none;}
.pj-stage{display:grid;grid-template-columns:1fr 1fr;align-items:center;justify-items:center;
  width:100%;max-width:min(1280px,100%);margin:0 auto;
  padding:clamp(8px,1.5vh,20px) clamp(20px,6vw,96px);box-sizing:border-box;}
.pj-cd{margin:0;flex:0 0 auto;cursor:default;}
.pj-cd-nanchang{width:clamp(380px,min(64vw,72vh),760px);aspect-ratio:3/2;
  --pjDiscX:46.61%;--pjDiscY:59.01%;--pjDiscSize:33.5%;}
.pj-cd-nushu{width:clamp(380px,min(64vw,72vh),760px);aspect-ratio:3/2;
  --pjDiscX:45.5%;--pjDiscY:59.2%;--pjDiscSize:33.2%;}
.pj-deck{position:relative;width:100%;height:100%;
  filter:drop-shadow(0 14px 28px rgba(40,37,32,.18)) drop-shadow(0 4px 10px rgba(40,37,32,.1));
  animation:pjFloat 5.6s ease-in-out infinite;}
.pj-cd-nanchang .pj-deck{animation-delay:-2.4s;}
.pj-player{display:block;width:100%;height:100%;object-fit:fill;pointer-events:none;}
.pj-disc{position:absolute;left:var(--pjDiscX);top:var(--pjDiscY);width:var(--pjDiscSize);
  aspect-ratio:1;transform:translate(-50%,-50%);z-index:1;pointer-events:auto;cursor:pointer;
  transition:transform .34s var(--ease);}
.pj-disc:hover{transform:translate(-50%,-50%) scale(1.26);}
.pj-im{display:block;width:100%;height:100%;object-fit:contain;
  transform-origin:50% 50%;will-change:transform;
  filter:drop-shadow(0 3px 10px rgba(20,16,12,.22));
  transition:filter .32s var(--ease);}
.pj-disc:hover .pj-im{filter:drop-shadow(0 8px 20px rgba(20,16,12,.36));}
.pj-im-nushu{animation:pjSpin 34s linear infinite;}
.pj-im-nanchang{animation:pjSpin 42s linear infinite reverse;}
.pj-disc:hover .pj-im-nushu{animation:pjSpin 20s linear infinite;}
.pj-disc:hover .pj-im-nanchang{animation:pjSpin 24s linear infinite reverse;}
@keyframes pjFloat{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-11px);}
}
@keyframes pjSpin{
  from{transform:rotate(0deg);}
  to{transform:rotate(360deg);}
}

/* ---------- 落地项目详情内页（女书 / 南昌） ---------- */
.sec-wk-pjd{padding-top:clamp(60px,6.5vh,80px);padding-bottom:clamp(24px,3vh,48px);}
.sec-wk-pjd .sub-head{margin-top:clamp(2px,.4vh,8px);}
.sec-wk-pjd .head-row{margin-bottom:clamp(8px,1vw,14px);}
.sec-wk-pjd .rule{margin:clamp(4px,.6vh,10px) 0;}
.pjd{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);
  gap:clamp(24px,3.5vw,56px);align-items:start;margin-top:0;}
.pjd-fig{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:3px;
  padding:clamp(14px,1.5vw,22px);box-shadow:0 16px 34px rgba(40,37,32,.1);
  transform:rotate(-1.2deg);max-width:min(100%,520px);}
.pjd-fig img{width:100%;height:auto;display:block;}
.pjd-tape{position:absolute;left:50%;top:0;width:clamp(56px,6.4vw,96px);
  height:clamp(15px,1.5vw,22px);background:rgba(228,214,188,.78);
  border:1px solid rgba(111,82,48,.1);mix-blend-mode:multiply;
  box-shadow:0 2px 6px rgba(40,37,32,.07);transform:translate(-50%,-52%) rotate(-3deg);}
.pjd-meta{font-family:var(--cn);font-size:clamp(10px,.82vw,12.5px);letter-spacing:.18em;color:var(--ink3);
  margin-bottom:clamp(14px,2vh,22px);}
html[data-lang="en"] .pjd-meta{font-family:var(--disp);letter-spacing:.12em;}
.pjd-desc{font-family:var(--cn);font-weight:300;font-size:clamp(12px,1vw,15.5px);
  line-height:1.95;color:var(--ink2);margin-bottom:clamp(18px,2.5vh,28px);}
html[data-lang="en"] .pjd-desc{font-family:var(--disp);line-height:1.85;}
.pjd-tags{display:flex;flex-wrap:wrap;gap:clamp(7px,.85vw,11px);}
.pjd-tags i{font-style:normal;font-family:var(--cn);font-weight:300;
  font-size:clamp(10px,.84vw,12.5px);letter-spacing:.06em;color:var(--ink2);
  border:1px dashed var(--line);border-radius:2px;padding:.45em .85em;
  background:rgba(228,214,188,.22);}
html[data-lang="en"] .pjd-tags i{font-family:var(--disp);}

/* ---------- 女书内页：全屏 Hero ---------- */
.sec-wk-nushu-fs{
  height:100vh;min-height:100vh;max-height:100vh;
  padding:0;justify-content:center;align-items:stretch;
  background:#0a0a0a;color:#fff;}
.sec-wk-nushu-fs .pjd-fs{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center center;
  pointer-events:none;user-select:none;-webkit-user-select:none;}
.pjd-fs-shade{
  position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(105deg,rgba(6,6,8,.82) 0%,rgba(6,6,8,.68) 38%,rgba(6,6,8,.28) 72%,rgba(6,6,8,.18) 100%),
    linear-gradient(to bottom,rgba(4,4,6,.55) 0%,transparent 28%,transparent 72%,rgba(4,4,6,.62) 100%);}
.pjd-hero{
  position:relative;z-index:3;align-self:center;pointer-events:none;
  width:100%;max-width:1320px;margin:0 auto;
  padding:clamp(112px,12vh,140px) var(--pad) clamp(48px,6vh,72px);
  box-sizing:border-box;}
.pjd-hero-kick{
  font-family:var(--disp);font-size:clamp(10px,.82vw,13px);font-weight:600;
  letter-spacing:.34em;text-transform:uppercase;color:rgba(255,255,255,.92);
  margin:0 0 clamp(22px,3.2vh,40px);}
.pjd-hero-title{
  font-family:var(--cn);font-weight:700;font-size:clamp(34px,5vw,68px);
  line-height:1.14;letter-spacing:.04em;color:#fff;
  margin:0 0 clamp(18px,2.6vh,30px);}
html[data-lang="en"] .pjd-hero-title{font-family:var(--disp);letter-spacing:.06em;line-height:1.08;}
.pjd-hero-title span{display:block;}
.pjd-hero-lead{
  font-family:var(--cn);font-weight:400;font-size:clamp(14px,1.12vw,18px);
  line-height:1.65;letter-spacing:.04em;color:rgba(255,255,255,.9);
  max-width:38em;margin:0 0 clamp(30px,4.2vh,52px);}
html[data-lang="en"] .pjd-hero-lead{font-family:var(--disp);letter-spacing:.02em;line-height:1.7;}
.pjd-hero-meta{
  font-family:var(--disp);font-size:clamp(10px,.84vw,13px);letter-spacing:.14em;
  color:rgba(255,255,255,.68);
  margin:calc(clamp(30px,4.2vh,52px) * -.55) 0 clamp(20px,2.8vh,34px);}
html[data-lang="zh"] .pjd-hero-meta{font-family:var(--cn);letter-spacing:.1em;}
.pjd-hero-tags{display:flex;flex-wrap:wrap;gap:clamp(10px,1.1vw,15px);
  list-style:none;padding:0;margin:0;}
.pjd-hero-tags li{
  font-family:var(--disp);font-size:clamp(10px,.8vw,12.5px);letter-spacing:.05em;
  color:rgba(255,255,255,.95);border:1px solid rgba(255,255,255,.82);
  padding:.52em 1.05em;background:rgba(255,255,255,.04);}
html[data-lang="zh"] .pjd-hero-tags li{font-family:var(--cn);letter-spacing:.08em;}
.sec-wk-nushu-fs .pjd-fs-back{display:none;}
.sec-wk-nushu-fs .tag-tl{color:rgba(255,255,255,.52);z-index:6;}

/* ---------- 女书内页 · 第二页（设计稿整页图） ---------- */
.sec-wk-ns-img{
  padding:0;min-height:100vh;justify-content:flex-start;
  background:#f3eee4;overflow:visible;}
.sec-wk-ns-img .ns-img{
  display:block;width:100%;height:auto;margin:0;
  pointer-events:none;user-select:none;-webkit-user-select:none;}
.sec-wk-ns-img .ns-img-back{
  position:absolute;z-index:3;top:clamp(68px,7.5vh,92px);left:var(--pad);
  right:auto;bottom:auto;width:auto;
  margin:0;color:var(--ink2);border-color:var(--line);
  background:rgba(255,255,255,.82);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);}
.sec-wk-ns-img .ns-img-back:hover{border-color:var(--acc);color:var(--acc);}

/* ---------- 女书内页 · P2~P5 通用 ----------
   右下「上一页 / 下一页」并排；内容整体上移，底部留白 ≥ 按钮高度，内容不碰按钮。
   关键：.inner 用 flex:1 拿到确定高度，内部再分配，超高内容压缩而不是溢出。 */
.sec-sub.sec-wk-ns2,.sec-sub.sec-wk-ns2b,.sec-sub.sec-wk-ns2c,
.sec-sub.sec-wk-ns3,.sec-sub.sec-wk-ns4,.sec-sub.sec-wk-ns5{
  height:100vh;min-height:100vh;max-height:100vh;overflow:hidden;
  justify-content:center;
  padding-top:clamp(54px,calc(3.8vh + 10px),66px);padding-bottom:clamp(78px,10vh,110px);
  background:var(--wash);}
/* 高度约束链：inner 精确充满内边距盒，头部行进入文档流，正文拿剩余空间 */
.sec-sub.sec-wk-ns2 .ns-page-inner,.sec-sub.sec-wk-ns2b .ns-page-inner,
.sec-sub.sec-wk-ns2c .ns-page-inner,.sec-sub.sec-wk-ns3 .ns-page-inner,
.sec-sub.sec-wk-ns4 .ns-page-inner,.sec-sub.sec-wk-ns5 .ns-page-inner{
  display:flex;flex-direction:column;flex:1;min-height:0;}
.sec-wk-ns2 .tag-tl-flow,.sec-wk-ns2b .tag-tl-flow,.sec-wk-ns2c .tag-tl-flow,
.sec-wk-ns3 .tag-tl-flow,.sec-wk-ns4 .tag-tl-flow,.sec-wk-ns5 .tag-tl-flow{
  position:static;display:block;}
/* 女书内页 · 顶栏（返回 + 横线）与落地项目页对齐，整体上移 */
.sec-wk-nushu-fs .ns-page-inner{
  position:absolute;z-index:10;top:0;left:0;right:0;
  padding:clamp(54px,calc(3.8vh + 10px),66px) var(--pad) 0;
  box-sizing:border-box;pointer-events:none;}
.sec-wk-nushu-fs .sub-back{pointer-events:auto;}
.sec-wk-nushu-fs .sub-head,
.sec-wk-ns2 .sub-head,.sec-wk-ns2b .sub-head,.sec-wk-ns2c .sub-head,
.sec-wk-ns3 .sub-head,.sec-wk-ns4 .sub-head,.sec-wk-ns5 .sub-head{
  margin-top:0;}
.sec-wk-nushu-fs .head-row,
.sec-wk-ns2 .head-row,.sec-wk-ns2b .head-row,.sec-wk-ns2c .head-row,
.sec-wk-ns3 .head-row,.sec-wk-ns4 .head-row,.sec-wk-ns5 .head-row{
  margin-bottom:clamp(2px,.25vw,5px);}
.sec-wk-nushu-fs .sub-bar,
.sec-wk-ns2 .sub-bar,.sec-wk-ns2b .sub-bar,.sec-wk-ns2c .sub-bar,
.sec-wk-ns3 .sub-bar,.sec-wk-ns4 .sub-bar,.sec-wk-ns5 .sub-bar{
  margin:0 0 clamp(2px,.25vh,5px);}
.sec-wk-nushu-fs .sub-back,.sec-wk-ns2 .sub-back,.sec-wk-ns2b .sub-back,.sec-wk-ns2c .sub-back,
.sec-wk-ns3 .sub-back,.sec-wk-ns4 .sub-back,.sec-wk-ns5 .sub-back{
  bottom:calc(100% + 6px);}
.ns-foot{
  position:absolute;z-index:8;right:var(--pad);bottom:clamp(24px,3.8vh,44px);
  display:flex;align-items:center;justify-content:flex-end;
  gap:clamp(10px,1.2vw,14px);}
.ns-prev,.ns-foot .ns-next{
  position:static;display:inline-flex;align-items:center;gap:.65em;
  font-family:var(--cn);font-size:clamp(11.5px,.94vw,14px);letter-spacing:.12em;
  border-radius:999px;padding:.85em 1.7em .85em 1.15em;
  white-space:nowrap;transition:all var(--dur-fast);}
html[data-lang="en"] .ns-prev,html[data-lang="en"] .ns-foot .ns-next{
  font-family:var(--disp);letter-spacing:.16em;text-transform:uppercase;
  font-size:clamp(10px,.82vw,12.5px);}
.ns-prev svg,.ns-foot .ns-next svg{
  width:clamp(15px,1.2vw,18px);height:clamp(15px,1.2vw,18px);flex-shrink:0;
  stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;
  transition:transform var(--dur-fast);}
.ns-prev{
  color:var(--ink2);background:rgba(255,255,255,.92);border:1px solid var(--line);
  box-shadow:0 6px 16px rgba(40,37,32,.07);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);}
.ns-prev:hover{border-color:var(--acc);color:var(--acc);transform:translateX(-3px);
  box-shadow:0 8px 20px rgba(40,37,32,.1);}
.ns-prev:hover svg{transform:translateX(-4px);}
.ns-prev:active{transform:scale(.97);}
.ns-foot .ns-next{
  color:#F5F1E8;background:var(--ink);border:1px solid var(--ink);
  padding:.85em 1.15em .85em 1.7em;
  box-shadow:0 12px 26px rgba(40,37,32,.22);}
.ns-foot .ns-next:hover{background:var(--brown);border-color:var(--brown);
  box-shadow:0 14px 30px rgba(111,82,48,.3);}
.ns-foot .ns-next:hover svg{transform:translateX(4px);}
.ns-foot .ns-next:active{transform:scale(.97);}
/* Hero 全屏：上一页浅色胶囊 */
.ns-foot-hero .ns-prev{
  color:rgba(255,255,255,.88);background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.42);
  box-shadow:0 10px 24px rgba(0,0,0,.18);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}
.ns-foot-hero .ns-prev:hover{
  color:#fff;border-color:rgba(255,255,255,.72);background:rgba(255,255,255,.16);}
.ns-foot-hero .ns-next{
  color:#F5F1E8;background:rgba(20,18,16,.88);border:1px solid rgba(255,255,255,.22);
  box-shadow:0 12px 28px rgba(0,0,0,.28);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}
.ns-foot-hero .ns-next:hover{background:var(--brown);border-color:var(--brown);
  box-shadow:0 14px 32px rgba(0,0,0,.32);}
/* 独立 ns-next（若未包在 ns-foot 内）保留原定位 */
.ns-next{
  position:absolute;z-index:8;right:var(--pad);bottom:clamp(24px,3.8vh,44px);
  display:inline-flex;align-items:center;gap:.75em;
  font-family:var(--cn);font-size:clamp(11.5px,.94vw,14px);letter-spacing:.12em;
  color:#F5F1E8;background:var(--ink);border:1px solid var(--ink);border-radius:999px;
  padding:.85em 1.15em .85em 1.7em;
  box-shadow:0 12px 26px rgba(40,37,32,.22);
  transition:all var(--dur-fast);}
html[data-lang="en"] .ns-next{font-family:var(--disp);letter-spacing:.16em;text-transform:uppercase;
  font-size:clamp(10px,.82vw,12.5px);}
.ns-next svg{
  width:clamp(15px,1.2vw,18px);height:clamp(15px,1.2vw,18px);flex-shrink:0;
  stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;
  transition:transform var(--dur-fast);}
.ns-next:hover{background:var(--brown);border-color:var(--brown);
  box-shadow:0 14px 30px rgba(111,82,48,.3);}
.ns-next:hover svg{transform:translateX(4px);}
.ns-next:active{transform:scale(.97);}

/* ---------- 女书 P2：项目概览 ---------- */
.ns2-inner{
  flex:1;min-height:0;
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:clamp(28px,4vw,72px);align-items:start;}
.sec-wk-ns2 .ns2-inner{margin-top:70px;}
.ns2-title{
  font-family:var(--cn);font-weight:700;letter-spacing:.05em;line-height:1.32;
  font-size:clamp(28px,3.2vw,48px);margin:0 0 clamp(6px,.8vh,10px);white-space:pre-line;}
html[data-lang="en"] .ns2-title{font-family:var(--disp);font-weight:300;letter-spacing:.08em;
  text-transform:uppercase;line-height:1.12;}
.ns2-p{
  font-family:var(--cn);font-weight:300;font-size:clamp(12.5px,1.05vw,16px);
  line-height:2;color:var(--ink2);margin:0 0 clamp(10px,1.5vh,18px);max-width:34em;}
html[data-lang="en"] .ns2-p{font-family:var(--disp);line-height:1.85;}
.ns2-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.4vw,22px);}
.ns2-card{
  --ns2-r:0deg;--ns2-y:0px;--ns2-float:9px;--ns2-drift:.6deg;
  --ns2-dur:6s;--ns2-delay:0s;
  position:relative;display:flex;align-items:center;justify-content:center;
  background:transparent;border:none;border-radius:0;padding:0;
  box-shadow:none;
  transform:rotate(var(--ns2-r)) translateY(var(--ns2-y));
  will-change:transform;}
.ns2-card::before{display:none;}
.ns2-card:nth-child(1){--ns2-r:-1.4deg;--ns2-float:8px;--ns2-drift:-.9deg;--ns2-dur:5.8s;--ns2-delay:-1.2s;}
.ns2-card:nth-child(2){--ns2-r:.35deg;--ns2-y:12px;--ns2-float:13px;--ns2-drift:-.55deg;--ns2-dur:4.6s;--ns2-delay:-2.4s;}
.ns2-card:nth-child(3){--ns2-r:1.25deg;--ns2-float:6px;--ns2-drift:.85deg;--ns2-dur:7.2s;--ns2-delay:-.6s;}
.sec-wk-ns2.live .ns2-card{
  animation:ns2CardFloat var(--ns2-dur) ease-in-out var(--ns2-delay) infinite;}
@keyframes ns2CardFloat{
  0%,100%{transform:rotate(var(--ns2-r)) translateY(var(--ns2-y));}
  50%{transform:rotate(calc(var(--ns2-r) + var(--ns2-drift))) translateY(calc(var(--ns2-y) - var(--ns2-float)));}
}
.ns2-sticker{
  display:block;width:100%;max-width:clamp(148px,14vw,220px);height:auto;
  filter:drop-shadow(0 14px 28px rgba(40,37,32,.14));
  user-select:none;-webkit-user-drag:none;pointer-events:none;}

/* ---------- 女书 P2b：项目路径 ---------- */
.ns2b-inner{display:flex;flex-direction:column;flex:1;min-height:0;}
/* 横线下方 kick + 标题区上移（P2 整体下移见 .sec-wk-ns2 .ns2-inner） */
.sec-wk-ns2 .ns2-copy{margin-top:clamp(-22px,-2.4vh,-14px);}
.sec-wk-ns2b .ns2b-head{margin-top:clamp(-34px,-3.6vh,-28px);}
.sec-wk-ns2c .ns2c-head,
.sec-wk-ns3 .ns3-copy,
.sec-wk-ns4 .ns4-head,
.sec-wk-ns5 .ns5-left{
  margin-top:clamp(-14px,-1.6vh,-8px);}
.ns2b-head{margin-bottom:clamp(10px,1.5vh,18px);}
.ns2b-head .kick{margin-bottom:clamp(6px,.8vh,10px);}
.ns2b-title{
  font-family:var(--cn);font-weight:700;letter-spacing:.06em;line-height:1.16;
  font-size:clamp(22px,2.6vw,38px);margin:0;}
html[data-lang="en"] .ns2b-title{font-family:var(--disp);font-weight:300;letter-spacing:.12em;
  text-transform:uppercase;}
.ns2b-body{
  flex:1;min-height:0;display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(24px,3.4vw,60px);align-items:center;}
.ns2b-left{display:flex;flex-direction:column;justify-content:center;min-height:0;
  gap:clamp(10px,1.6vh,18px);}
.ns2b-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;
  gap:clamp(5px,.8vh,10px);counter-reset:none;}
.ns2b-steps li{
  display:flex;align-items:center;gap:clamp(12px,1.3vw,20px);
  background:var(--paper);border:1px solid var(--line);border-radius:3px;
  padding:clamp(9px,1.3vh,14px) clamp(14px,1.5vw,22px);
  box-shadow:0 8px 18px rgba(40,37,32,.06);}
.ns2b-star{
  margin-left:auto;flex-shrink:0;
  width:clamp(18px,1.6vw,25px);height:clamp(18px,1.6vw,25px);
  fill:var(--acc);transform:rotate(-8deg);
  filter:drop-shadow(0 2px 4px rgba(111,82,48,.25));}
.ns2b-steps i{
  font-style:normal;font-family:var(--disp);font-weight:600;
  font-size:clamp(11px,.95vw,14px);letter-spacing:.1em;color:var(--ink3);}
.ns2b-steps li.on i{color:var(--acc);}
.ns2b-steps b{
  display:block;font-family:var(--disp);font-weight:600;
  font-size:clamp(11.5px,.95vw,14.5px);letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink);margin-bottom:2px;}
html[data-lang="zh"] .ns2b-steps b{
  font-family:var(--cn);font-weight:500;letter-spacing:.06em;text-transform:none;}
.ns2b-steps li.on b{color:var(--acc);}
.ns2b-steps s{
  text-decoration:none;font-family:var(--cn);font-weight:300;
  font-size:clamp(10.5px,.85vw,13px);letter-spacing:.05em;color:var(--ink3);}
html[data-lang="en"] .ns2b-steps s{font-family:var(--disp);}
.ns2b-field{
  all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;
  gap:clamp(5px,.7vh,8px);
  background:var(--paper);border:1px solid var(--line);border-radius:3px;
  padding:clamp(7px,.9vh,11px) clamp(9px,.9vw,13px);
  box-shadow:0 8px 18px rgba(40,37,32,.06);
  transition:transform var(--dur-fast),box-shadow var(--dur-fast),border-color var(--dur-fast);}
.ns2b-field:hover{
  transform:translateY(-3px);border-color:var(--acc);
  box-shadow:0 14px 28px rgba(40,37,32,.12);}
.ns2b-field-ims{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(4px,.45vw,7px);}
.ns2b-field-ims img{
  width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:2px;
  border:1px solid var(--line);cursor:pointer;
  transition:border-color var(--dur-fast),box-shadow var(--dur-fast);}
.ns2b-field-ims img:hover{border-color:var(--acc);box-shadow:0 4px 12px rgba(40,37,32,.1);}
.ns2b-field-cap{
  font-family:var(--cn);font-size:clamp(9px,.74vw,11.5px);letter-spacing:.12em;
  color:var(--ink3);text-align:center;transition:color var(--dur-fast);}
html[data-lang="en"] .ns2b-field-cap{font-family:var(--disp);letter-spacing:.1em;text-transform:uppercase;}
.ns2b-field:hover .ns2b-field-cap{color:var(--acc);}
.ns2b-modes{
  display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;
  gap:clamp(10px,1.2vw,18px);height:100%;min-height:0;max-height:clamp(320px,52vh,460px);}
.ns2b-mode{
  display:flex;flex-direction:column;justify-content:center;
  background:var(--paper);border:1px solid var(--line);border-radius:4px;
  padding:clamp(16px,2vh,26px) clamp(16px,1.6vw,26px);
  box-shadow:0 12px 26px rgba(40,37,32,.08);}
.ns2b-mode.is-dark{background:#2E3630;border-color:#2E3630;}
.ns2b-mode b{
  font-family:var(--disp);font-weight:300;letter-spacing:.14em;
  font-size:clamp(18px,1.8vw,28px);color:var(--ink);margin-bottom:2px;}
html[data-lang="zh"] .ns2b-mode b{
  font-family:var(--cn);font-weight:500;letter-spacing:.12em;margin-bottom:clamp(8px,1.2vh,14px);}
.ns2b-mode.is-dark b{color:#EFEBE2;}
html[data-lang="en"] .ns2b-mode.is-dark b{color:#EFEBE2;}
html[data-lang="zh"] .ns2b-mode i{display:none;}
html[data-lang="en"] .ns2b-mode i{
  font-style:normal;font-family:var(--disp);font-size:clamp(10px,.8vw,12px);
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink3);
  margin-bottom:clamp(8px,1.2vh,14px);}
html[data-lang="en"] .ns2b-mode.is-dark i{color:rgba(239,235,226,.6);}
.ns2b-mode p{
  font-family:var(--cn);font-weight:300;font-size:clamp(11px,.9vw,13.5px);
  line-height:1.8;color:var(--ink2);margin:0;}
.ns2b-mode.is-dark p{color:rgba(239,235,226,.82);}
html[data-lang="en"] .ns2b-mode p{font-family:var(--disp);line-height:1.7;}
/* ---------- 女书 P2c：数字展项总览 ---------- */
.ns2c-inner{display:flex;flex-direction:column;flex:1;min-height:0;}
.ns2c-head{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:clamp(20px,3vw,48px);margin-bottom:clamp(14px,2.2vh,26px);flex-wrap:wrap;}
.ns2c-head .kick{margin-bottom:clamp(6px,.8vh,10px);}
.ns2c-title{
  font-family:var(--cn);font-weight:700;letter-spacing:.06em;line-height:1.16;
  font-size:clamp(20px,2.3vw,34px);margin:0;}
html[data-lang="en"] .ns2c-title{font-family:var(--disp);font-weight:300;letter-spacing:.1em;
  text-transform:uppercase;}
/* 「可点击查阅」提示：跟在标题下的一行小字 */
.ns2c-hint{
  display:inline-flex;align-items:center;gap:.55em;
  margin:clamp(8px,1.1vh,13px) 0 0;
  font-family:var(--cn);font-weight:400;font-size:clamp(10.5px,.85vw,13px);
  letter-spacing:.12em;color:var(--acc);}
.ns2c-hint::before{content:'';width:clamp(14px,1.3vw,20px);height:1px;
  background:var(--acc);flex-shrink:0;}
.ns2c-hint svg{width:1.15em;height:1.15em;stroke:currentColor;stroke-width:1.8;
  fill:none;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;}
html[data-lang="en"] .ns2c-hint{font-family:var(--disp);letter-spacing:.08em;text-transform:uppercase;
  font-size:clamp(9.5px,.78vw,12px);}
.ns2c-stats{list-style:none;margin:0;padding:0;display:flex;gap:clamp(18px,2.6vw,44px);}
.ns2c-stats li{display:flex;flex-direction:column;align-items:flex-start;gap:2px;}
.ns2c-stats b{
  font-family:var(--disp);font-weight:300;font-size:clamp(22px,2.4vw,36px);
  letter-spacing:.06em;color:var(--acc);line-height:1;}
.ns2c-stats s{
  text-decoration:none;font-family:var(--cn);font-size:clamp(9.5px,.76vw,11.5px);
  letter-spacing:.14em;color:var(--ink3);}
html[data-lang="en"] .ns2c-stats s{font-family:var(--disp);letter-spacing:.1em;text-transform:uppercase;}
.ns2c-grid{
  flex:1;min-height:0;display:grid;
  grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(0,1fr);
  gap:clamp(9px,1vw,16px);}
.ns2c-card{
  all:unset;box-sizing:border-box;cursor:pointer;
  position:relative;display:flex;flex-direction:column;justify-content:center;
  min-height:0;overflow:hidden;
  gap:clamp(2px,.4vh,5px);background:var(--paper);border:1px solid var(--line);
  border-radius:3px;padding:clamp(8px,1.1vh,13px) clamp(12px,1.2vw,18px);
  box-shadow:0 8px 18px rgba(40,37,32,.06);
  transition:transform var(--dur-fast),box-shadow var(--dur-fast),border-color var(--dur-fast);}
.ns2c-card:hover{
  transform:translateY(-3px);border-color:var(--acc);
  box-shadow:0 14px 28px rgba(40,37,32,.12);}
.ns2c-card.is-star{border-color:var(--acc);background:rgba(228,214,188,.16);}
.ns2c-card-more{
  display:inline-flex;align-items:center;gap:.4em;margin-top:clamp(2px,.4vh,5px);
  font-family:var(--cn);font-size:clamp(8.5px,.7vw,10.5px);letter-spacing:.1em;
  color:var(--ink3);transition:color var(--dur-fast);}
html[data-lang="en"] .ns2c-card-more{font-family:var(--disp);text-transform:uppercase;}
.ns2c-card-more svg{
  width:1em;height:1em;stroke:currentColor;stroke-width:2;fill:none;
  stroke-linecap:round;stroke-linejoin:round;transition:transform var(--dur-fast);}
.ns2c-card:hover .ns2c-card-more{color:var(--acc);}
.ns2c-card:hover .ns2c-card-more svg{transform:translateX(3px);}
/* 方案一设计图查看层 */
.ns2c-view{
  position:fixed;inset:0;z-index:820;display:none;
  flex-direction:column;align-items:center;justify-content:center;
  background:rgba(38,34,29,.9);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}
.ns2c-view.on{display:flex;}
.ns2c-view-head{
  text-align:center;margin-bottom:clamp(12px,2vh,22px);padding:0 var(--pad);cursor:pointer;}
.ns2c-view-head h3{
  font-family:var(--cn);font-weight:500;letter-spacing:.1em;
  font-size:clamp(13px,1.15vw,17px);color:rgba(255,255,255,.95);margin:0 0 4px;}
html[data-lang="en"] .ns2c-view-head h3{font-family:var(--disp);font-weight:400;}
.ns2c-view-head p{
  font-family:var(--disp);font-size:clamp(10px,.82vw,12.5px);letter-spacing:.2em;
  color:rgba(255,255,255,.55);margin:0;}
.ns2c-view-stage{
  display:flex;align-items:center;gap:clamp(14px,2vw,32px);
  padding:0 var(--pad);max-width:100%;}
/* 模拟屏幕：--bz 为屏幕边框厚度 */
.ns2c-screenwrap{
  --bz:clamp(9px,.9vw,15px);
  display:flex;flex-direction:column;align-items:center;min-width:0;}
.ns2c-duo{display:flex;align-items:center;justify-content:center;
  gap:clamp(18px,2.4vw,38px);min-width:0;}
.ns2c-duo-col{display:flex;flex-direction:column;align-items:center;
  gap:clamp(14px,1.6vh,22px);}
.ns2c-duo-caps{display:flex;flex-direction:column;align-items:center;gap:clamp(5px,.65vh,8px);}
.ns2c-duo-cap{
  font-family:var(--cn);font-size:clamp(10px,.82vw,12.5px);letter-spacing:.14em;
  color:rgba(255,255,255,.84);text-align:center;white-space:nowrap;line-height:1;}
.ns2c-duo-note{
  font-family:var(--cn);font-size:clamp(9px,.72vw,11px);letter-spacing:.08em;
  color:rgba(255,255,255,.68);text-align:center;line-height:1.55;max-width:min(42vw,320px);}
html[data-lang="en"] .ns2c-duo-cap{font-family:var(--disp);letter-spacing:.12em;}
html[data-lang="en"] .ns2c-duo-note{font-family:var(--disp);letter-spacing:.06em;line-height:1.45;}
.ns2c-screenwrap:not(.mode-dual) .ns2c-duo-caps,
.ns2c-screenwrap:not(.mode-dual) .ns2c-duo-cap,
.ns2c-screenwrap:not(.mode-dual) .ns2c-duo-note,
.ns2c-screenwrap:not(.mode-dual) .ns2c-duo-col-b{display:none;}
.ns2c-scr{position:relative;display:block;line-height:0;}
.ns2c-scr-b{display:none;}
.ns2c-view-stage img{
  max-width:min(74vw,1150px);max-height:64vh;width:auto;height:auto;
  cursor:pointer;display:block;}
/* 屏幕外观（单屏与双屏共用）：深色边框 + 高光 + 电源灯 */
.ns2c-screenwrap.mode-screen .ns2c-scr img,
.ns2c-screenwrap.mode-dual .ns2c-scr img{
  background:#000;border:var(--bz) solid #0B0A09;border-radius:10px;
  box-shadow:0 0 0 1px rgba(255,255,255,.09),0 34px 80px rgba(0,0,0,.62);}
.ns2c-screenwrap.mode-screen .ns2c-screen-gloss,
.ns2c-screenwrap.mode-dual .ns2c-screen-gloss{
  position:absolute;inset:var(--bz);pointer-events:none;border-radius:2px;
  background:linear-gradient(115deg,rgba(255,255,255,.13) 0%,rgba(255,255,255,.04) 22%,rgba(255,255,255,0) 34%);}
.ns2c-screenwrap.mode-screen .ns2c-screen-led,
.ns2c-screenwrap.mode-dual .ns2c-screen-led{
  position:absolute;left:50%;transform:translateX(-50%);
  bottom:calc(var(--bz)/2 - 2.5px);width:5px;height:5px;border-radius:50%;
  background:#5FE39A;box-shadow:0 0 7px rgba(95,227,154,.95);}
.ns2c-screenwrap.mode-screen .ns2c-screen-stand{
  width:clamp(64px,7.4vw,116px);height:clamp(13px,1.8vh,21px);
  background:linear-gradient(#16130F,#050404);
  clip-path:polygon(20% 0,80% 0,100% 100%,0 100%);}
.ns2c-screenwrap.mode-screen .ns2c-screen-shadow{
  width:44%;height:clamp(9px,1.2vh,14px);margin-top:3px;border-radius:50%;
  background:radial-gradient(ellipse at center,rgba(0,0,0,.6),transparent 68%);}
.ns2c-screen-cap{
  display:none;margin-top:clamp(12px,1.5vh,18px);
  font-family:var(--cn);font-size:clamp(10px,.82vw,12.5px);letter-spacing:.14em;
  color:rgba(255,255,255,.84);text-align:center;line-height:1.5;white-space:pre;}
html[data-lang="en"] .ns2c-screen-cap{font-family:var(--disp);letter-spacing:.12em;}
.ns2c-screenwrap.mode-screen .ns2c-screen-cap{display:block;}
.ns2c-screenwrap.mode-screen .ns2c-screen-cap:empty{display:none;}
/* 双屏互动：大小屏各自成屏并排展示（宽度由 JS 按 PPT 比例计算） */
.ns2c-screenwrap.mode-dual .ns2c-scr-b{display:block;}
.ns2c-screenwrap.mode-dual .ns2c-scr img{max-width:none;max-height:none;height:auto;}
.ns2c-screenwrap.mode-dual .ns2c-screen-stand,
.ns2c-screenwrap.mode-dual .ns2c-screen-shadow{display:none;}
.ns2c-screenwrap.mode-dual .ns2c-scr::after{
  content:"";position:absolute;left:10%;right:10%;bottom:-16px;height:14px;
  border-radius:50%;background:radial-gradient(ellipse at center,rgba(0,0,0,.5),transparent 68%);}
/* 照片：白边相纸 */
.ns2c-screenwrap.mode-photo img{
  border:clamp(8px,.8vw,12px) solid #FBFAF6;border-bottom-width:clamp(20px,2.2vw,32px);
  border-radius:2px;box-shadow:0 30px 70px rgba(0,0,0,.55);}
.ns2c-screenwrap.mode-photo .ns2c-screen-gloss,
.ns2c-screenwrap.mode-photo .ns2c-screen-led,
.ns2c-screenwrap.mode-photo .ns2c-screen-stand,
.ns2c-screenwrap.mode-photo .ns2c-screen-shadow{display:none;}
.ns2c-screenwrap.mode-screen .ns2c-scr-b,
.ns2c-screenwrap.mode-photo .ns2c-scr-b{display:none;}
/* 开机/换页动画：亮度闪动一下，像屏幕切换内容 */
@keyframes nsScreenOn{
  0%{opacity:0;filter:brightness(2.1) saturate(.6);transform:scale(.985);}
  38%{opacity:1;filter:brightness(.82) saturate(.95);}
  68%{filter:brightness(1.12);}
  100%{opacity:1;filter:brightness(1) saturate(1);transform:scale(1);}
}
.ns2c-screenwrap.is-on .ns2c-scr{animation:nsScreenOn .48s ease-out;}
.ns2c-view-nav{
  width:clamp(40px,3.4vw,52px);height:clamp(40px,3.4vw,52px);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:clamp(22px,2vw,30px);line-height:1;color:rgba(255,255,255,.85);
  border:1px solid rgba(255,255,255,.35);border-radius:50%;
  transition:all var(--dur-fast);}
.ns2c-view-nav:hover{color:#fff;border-color:#fff;background:rgba(255,255,255,.08);}
/* 图集 · 总览按钮（图案下方、列内右对齐） */
.ns2c-overview-slot{
  display:none;width:100%;justify-content:flex-end;align-items:center;
  margin-top:clamp(-10px,-1vh,-6px);}
.ns2c-overview-slot.has-btn{display:flex;}
.ns2c-overview-btn{
  display:inline-block;position:static;
  font-family:var(--cn);font-size:clamp(9px,.75vw,11.5px);letter-spacing:.12em;
  color:rgba(255,255,255,.92);background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.42);border-radius:999px;
  padding:.5em 1em;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  box-shadow:0 4px 14px rgba(0,0,0,.22);transition:all var(--dur-fast);
  cursor:pointer;line-height:1.2;}
html[data-lang="en"] .ns2c-overview-btn{font-family:var(--disp);letter-spacing:.1em;text-transform:uppercase;
  font-size:clamp(8px,.68vw,10.5px);}
.ns2c-overview-btn:hover,.ns2c-overview-btn.is-active{
  color:#fff;border-color:rgba(255,255,255,.78);background:rgba(255,255,255,.16);}
.ns2c-overview{
  position:absolute;inset:0;z-index:7;display:none;align-items:center;justify-content:center;
  padding:clamp(72px,10vh,100px) var(--pad) clamp(64px,8vh,88px);
  background:rgba(16,14,12,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);}
.ns2c-overview.on{display:flex;}
.ns2c-overview-panel{
  width:min(1120px,100%);max-height:100%;overflow:auto;
  padding:clamp(4px,.6vh,8px) clamp(2px,.3vw,4px);}
.ns2c-overview-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(clamp(128px,13vw,168px),1fr));
  gap:clamp(12px,1.4vw,18px);}
.ns2c-overview-item{
  display:flex;flex-direction:column;align-items:stretch;gap:clamp(6px,.7vh,8px);
  padding:clamp(8px,.8vw,10px);margin:0;border:1px solid rgba(255,255,255,.16);
  border-radius:6px;background:rgba(255,255,255,.05);cursor:pointer;
  transition:border-color var(--dur-fast),background var(--dur-fast),transform var(--dur-fast);}
.ns2c-overview-item:hover{border-color:rgba(255,255,255,.42);background:rgba(255,255,255,.1);
  transform:translateY(-2px);}
.ns2c-overview-item.on{border-color:rgba(255,255,255,.78);background:rgba(255,255,255,.14);
  box-shadow:0 0 0 1px rgba(255,255,255,.12);}
.ns2c-overview-thumb{
  display:flex;align-items:center;justify-content:center;gap:clamp(3px,.35vw,5px);
  aspect-ratio:16/10;background:#0a0a0a;border-radius:3px;overflow:hidden;
  border:1px solid rgba(255,255,255,.08);}
.ns2c-overview-thumb img{
  display:block;width:100%;height:100%;object-fit:cover;pointer-events:none;}
.ns2c-overview-item.is-dual .ns2c-overview-thumb img{width:50%;}
.ns2c-overview-num{
  font-family:var(--disp);font-size:clamp(9px,.72vw,11px);letter-spacing:.18em;
  color:rgba(255,255,255,.55);text-align:center;}
.ns2c-overview-cap{
  font-family:var(--cn);font-size:clamp(8.5px,.68vw,10.5px);letter-spacing:.04em;
  line-height:1.45;color:rgba(255,255,255,.72);text-align:center;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
html[data-lang="en"] .ns2c-overview-cap{font-family:var(--disp);letter-spacing:.02em;}
.ns2c-card u{
  text-decoration:none;font-family:var(--cn);font-size:clamp(8.5px,.68vw,10.5px);
  letter-spacing:.12em;color:var(--ink3);}
html[data-lang="en"] .ns2c-card u{font-family:var(--disp);letter-spacing:.08em;text-transform:uppercase;}
.ns2c-card h4{
  display:flex;align-items:center;gap:.55em;margin:0;
  font-family:var(--cn);font-weight:600;font-size:clamp(12.5px,1.05vw,16px);
  letter-spacing:.05em;color:var(--ink);}
html[data-lang="en"] .ns2c-card h4{font-family:var(--disp);font-weight:400;letter-spacing:.03em;}
.ns2c-card h4 svg{
  width:clamp(13px,1.05vw,16px);height:clamp(13px,1.05vw,16px);flex-shrink:0;
  fill:var(--acc);transform:rotate(-8deg);}
.ns2c-card i{
  font-style:normal;font-family:var(--cn);font-size:clamp(8.5px,.7vw,10.5px);
  letter-spacing:.1em;color:var(--acc);align-self:flex-start;
  border:1px dashed var(--line);border-radius:2px;padding:.2em .6em;
  background:rgba(228,214,188,.22);}
html[data-lang="en"] .ns2c-card i{font-family:var(--disp);}
.ns2c-card p{
  font-family:var(--cn);font-weight:300;font-size:clamp(10px,.82vw,12.5px);
  line-height:1.6;color:var(--ink2);margin:0;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
html[data-lang="en"] .ns2c-card p{font-family:var(--disp);line-height:1.55;}

/* ---------- 女书 P3：焦点展项 ---------- */
.ns3-inner{
  flex:1;min-height:0;
  display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:clamp(28px,4.2vw,72px);align-items:center;}
.ns3-title{
  font-family:var(--cn);font-weight:700;letter-spacing:.06em;line-height:1.2;
  font-size:clamp(30px,3.6vw,54px);margin:0 0 clamp(8px,1.2vh,14px);}
html[data-lang="en"] .ns3-title{font-family:var(--disp);font-weight:300;letter-spacing:.1em;
  text-transform:uppercase;line-height:1.1;}
.ns3-sub{
  font-family:var(--disp);font-size:clamp(11px,.9vw,14px);letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink3);margin:0;}
html[data-lang="zh"] .ns3-sub{letter-spacing:.1em;}
.ns3-q-kick{
  font-size:clamp(9px,.72vw,11px);letter-spacing:.28em;text-transform:uppercase;
  color:var(--acc);margin:0 0 clamp(8px,1.1vh,13px);}
html[data-lang="zh"] .ns3-q-kick{font-family:var(--cn);letter-spacing:.16em;}
.ns3-q{
  font-family:var(--cn);font-weight:500;font-size:clamp(15px,1.4vw,21.5px);
  line-height:1.85;color:var(--ink);margin:0 0 clamp(16px,2.4vh,26px);}
html[data-lang="en"] .ns3-q{font-family:var(--disp);font-weight:400;line-height:1.7;}
.ns3-meta{
  font-family:var(--cn);font-weight:300;font-size:clamp(11px,.92vw,14px);
  line-height:1.9;color:var(--ink3);letter-spacing:.04em;margin:0 0 clamp(14px,2.2vh,24px);}
html[data-lang="en"] .ns3-meta{font-family:var(--disp);}
.ns3-mods{
  display:flex;align-items:center;flex-wrap:wrap;gap:clamp(7px,.8vw,11px);
  margin:0 0 clamp(9px,1.3vh,14px);}
.ns3-mods i{
  font-style:normal;font-family:var(--cn);font-size:clamp(9px,.74vw,11.5px);
  letter-spacing:.16em;color:var(--ink3);margin-right:clamp(4px,.5vw,8px);}
html[data-lang="en"] .ns3-mods i{font-family:var(--disp);text-transform:uppercase;letter-spacing:.12em;}
.ns3-mods b{
  font-family:var(--cn);font-weight:500;font-size:clamp(10.5px,.86vw,13px);
  letter-spacing:.08em;color:var(--ink2);
  border:1px solid var(--line);border-radius:2px;padding:.42em .85em;
  background:var(--paper);box-shadow:0 4px 10px rgba(40,37,32,.05);}
html[data-lang="en"] .ns3-mods b{font-family:var(--disp);font-weight:400;}
.ns3-spec{
  font-family:var(--disp);font-size:clamp(9px,.74vw,11.5px);letter-spacing:.1em;
  color:var(--ink3);margin:0;}
html[data-lang="zh"] .ns3-spec{font-family:var(--cn);letter-spacing:.08em;}
.ns3-fig{
  position:relative;background:var(--paper);border:1px solid var(--line);border-radius:3px;
  padding:clamp(12px,1.3vw,20px) clamp(12px,1.3vw,20px) clamp(8px,.9vw,13px);
  box-shadow:0 18px 40px rgba(40,37,32,.12);transform:rotate(1.1deg);
  justify-self:end;max-width:min(100%,640px);}
.ns3-fig img{width:100%;height:auto;border:1px solid var(--line);}
.ns3-cap{
  font-family:var(--cn);font-size:clamp(9.5px,.76vw,11.5px);letter-spacing:.14em;
  color:var(--ink3);text-align:center;padding:clamp(7px,.8vw,11px) 0 2px;}
html[data-lang="en"] .ns3-cap{font-family:var(--disp);letter-spacing:.1em;}

/* ---------- 女书 P4：体验旅程 ---------- */
.ns4-inner{display:flex;flex-direction:column;flex:1;min-height:0;}
.ns4-head{margin-bottom:clamp(12px,1.8vh,22px);}
.ns4-head .kick{margin-bottom:clamp(6px,.8vh,10px);}
.ns4-title{
  font-family:var(--cn);font-weight:700;letter-spacing:.06em;line-height:1.16;
  font-size:clamp(22px,2.6vw,38px);margin:0;}
html[data-lang="en"] .ns4-title{font-family:var(--disp);font-weight:300;letter-spacing:.12em;
  text-transform:uppercase;}
.ns4-body{
  flex:1;min-height:0;display:grid;
  grid-template-columns:clamp(190px,17vw,250px) minmax(0,1fr);
  gap:clamp(20px,2.6vw,44px);align-items:stretch;}
.ns4-steps{display:flex;flex-direction:column;justify-content:center;gap:clamp(4px,.7vh,9px);}
.ns4-step{
  display:flex;align-items:baseline;gap:clamp(9px,.9vw,13px);text-align:left;
  padding:clamp(7px,1vh,11px) clamp(10px,1vw,15px);
  border:1px solid transparent;border-radius:2px;
  transition:all var(--dur-fast);cursor:pointer;}
.ns4-step i{
  font-style:normal;font-family:var(--disp);font-size:clamp(10px,.8vw,12px);
  letter-spacing:.08em;color:var(--ink3);min-width:2em;transition:color var(--dur-fast);}
.ns4-step b{
  font-family:var(--cn);font-weight:500;font-size:clamp(12.5px,1.06vw,16px);
  letter-spacing:.08em;color:var(--ink2);transition:color var(--dur-fast);}
html[data-lang="en"] .ns4-step b{font-family:var(--disp);font-weight:400;letter-spacing:.06em;}
.ns4-step s{
  text-decoration:none;font-family:var(--disp);font-size:clamp(8.5px,.68vw,10.5px);
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink3);}
.ns4-step:hover{border-color:var(--line);background:rgba(255,255,255,.6);}
.ns4-step.on{
  border-color:var(--line);background:var(--paper);
  box-shadow:0 8px 20px rgba(40,37,32,.08);}
.ns4-step.on i{color:var(--acc);}
.ns4-step.on b{color:var(--ink);}
.ns4-stage{display:flex;flex-direction:column;min-width:0;min-height:0;justify-content:center;
  gap:clamp(12px,1.8vh,20px);}
.ns4-shots{
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,1.5vw,24px);
  align-items:start;min-height:0;width:100%;}
.ns4-shot{
  position:relative;margin:0;padding:0;line-height:0;
  width:100%;aspect-ratio:1400/788;max-height:52vh;
  background:#f6f3ec;border:1px solid var(--line);border-radius:3px;
  box-shadow:0 14px 30px rgba(40,37,32,.1);overflow:hidden;}
.ns4-shot img{
  display:block;width:100%;height:100%;margin:0;
  object-fit:contain;object-position:top center;
  border:none;background:transparent;
  transition:opacity .28s var(--ease);}
.ns4-shots.is-swap .ns4-shot img{opacity:0;}
.ns4-desc{
  font-family:var(--cn);font-weight:300;font-size:clamp(12px,1vw,15px);
  line-height:1.9;color:var(--ink2);max-width:56em;margin:0;}
html[data-lang="en"] .ns4-desc{font-family:var(--disp);line-height:1.8;}
.ns4-desc b{font-weight:500;color:var(--ink);margin-right:1.2em;}

/* ---------- 女书 P5：从界面到现场 ---------- */
.ns5-inner{
  display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  gap:clamp(28px,4vw,68px);align-items:center;flex:1;min-height:0;}
.ns5-title{
  font-family:var(--cn);font-weight:700;letter-spacing:.05em;line-height:1.28;
  font-size:clamp(24px,2.8vw,42px);margin:0 0 clamp(12px,1.8vh,20px);}
html[data-lang="en"] .ns5-title{font-family:var(--disp);font-weight:300;letter-spacing:.1em;
  text-transform:uppercase;line-height:1.14;}
.ns5-lead{
  font-family:var(--cn);font-weight:300;font-size:clamp(12px,1vw,15px);
  line-height:1.95;color:var(--ink2);margin:0 0 clamp(16px,2.6vh,28px);}
html[data-lang="en"] .ns5-lead{font-family:var(--disp);line-height:1.8;}
.ns5-results{list-style:none;padding:0;margin:0 0 clamp(20px,3vh,32px);}
.ns5-results li{
  display:flex;align-items:baseline;gap:clamp(12px,1.2vw,18px);
  padding:clamp(9px,1.3vh,14px) 0;border-bottom:1px solid var(--line);}
.ns5-results li:first-child{border-top:1px solid var(--line);}
.ns5-results b{
  font-family:var(--disp);font-weight:600;font-size:clamp(9px,.74vw,11.5px);
  letter-spacing:.2em;text-transform:uppercase;color:var(--acc);
  min-width:clamp(96px,9vw,140px);flex-shrink:0;}
.ns5-results span{
  font-family:var(--cn);font-weight:300;font-size:clamp(11.5px,.96vw,14.5px);
  letter-spacing:.04em;color:var(--ink2);}
html[data-lang="en"] .ns5-results span{font-family:var(--disp);}
.ns5-right{display:flex;flex-direction:column;gap:clamp(12px,1.8vh,20px);min-width:0;}
.ns5-main{
  position:relative;background:var(--paper);border:1px solid var(--line);border-radius:3px;
  padding:clamp(10px,1.1vw,17px) clamp(10px,1.1vw,17px) clamp(6px,.7vw,10px);
  box-shadow:0 18px 40px rgba(40,37,32,.12);transform:rotate(-.8deg);margin:0;}
.ns5-main img{width:100%;height:auto;max-height:46vh;object-fit:cover;border:1px solid var(--line);
  cursor:zoom-in;transition:border-color var(--dur-fast),box-shadow var(--dur-fast);}
.ns5-main img:hover{border-color:var(--acc);box-shadow:0 6px 18px rgba(40,37,32,.12);}
.ns5-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(8px,1vw,16px);}
.ns5-strip img{
  width:100%;aspect-ratio:4/3;object-fit:cover;cursor:zoom-in;
  background:var(--paper);border:1px solid var(--line);border-radius:2px;
  padding:clamp(3px,.35vw,6px);box-shadow:0 8px 18px rgba(40,37,32,.08);
  transition:border-color var(--dur-fast),transform var(--dur-fast),box-shadow var(--dur-fast);}
.ns5-strip img:hover{border-color:var(--acc);transform:translateY(-2px);
  box-shadow:0 10px 22px rgba(40,37,32,.12);}

/* 矮窗口（笔记本 720~800 高）：压缩排版，保证内容完整露出且不碰按钮 */
@media (min-width:861px) and (max-height:820px){
  .sec-sub.sec-wk-ns2,.sec-sub.sec-wk-ns2b,.sec-sub.sec-wk-ns2c,
  .sec-sub.sec-wk-ns3,.sec-sub.sec-wk-ns4,.sec-sub.sec-wk-ns5{
    padding-top:clamp(50px,calc(3.2vh + 8px),60px);}
  .sec-wk-nushu-fs .ns-page-inner{
    padding-top:clamp(50px,calc(3.2vh + 8px),60px);}
  .ns2c-head{margin-bottom:clamp(10px,1.4vh,16px);}
  .ns2c-stats b{font-size:clamp(19px,2vw,26px);}
  .ns2c-title{font-size:clamp(19px,2.1vw,30px);}
  .ns2c-card{padding:clamp(6px,.9vh,10px) clamp(11px,1.1vw,15px);gap:2px;}
  .ns2c-card h4{font-size:clamp(12px,1vw,14.5px);}
  .ns2c-card i{font-size:clamp(8.5px,.68vw,10px);padding:.22em .6em;}
  .ns2c-card p{line-height:1.5;-webkit-line-clamp:1;}
  .ns2c-card-more{margin-top:1px;}
  .ns2b-head{margin-top:clamp(-32px,-3.4vh,-26px);margin-bottom:clamp(8px,1.2vh,14px);}
  .ns2b-steps li{padding:clamp(6px,.9vh,10px) clamp(12px,1.3vw,18px);}
  .ns2b-modes{max-height:clamp(280px,46vh,400px);}
  .ns2b-mode{padding:clamp(11px,1.5vh,18px) clamp(14px,1.4vw,22px);}
  .ns2b-mode p{line-height:1.6;}
  .ns2b-field-ims img{aspect-ratio:16/10;}
  .ns4-head{margin-bottom:clamp(8px,1.2vh,14px);}
  .ns4-shot{max-height:44vh;}
  .ns4-desc{line-height:1.7;}
  .ns5-main img{max-height:38vh;}
  .ns2-sticker{max-width:clamp(132px,12vw,190px);}
  .ns3-fig img{max-height:52vh;object-fit:contain;}
}

@media (max-width:860px){
  .sec-wk-ns2,.sec-wk-ns2b,.sec-wk-ns2c,.sec-wk-ns3,.sec-wk-ns4,.sec-wk-ns5{
    height:auto;min-height:100vh;max-height:none;overflow:visible;}
  .ns2-inner,.ns2b-body,.ns3-inner,.ns5-inner{grid-template-columns:1fr;gap:22px;}
  .ns2c-grid{grid-template-columns:1fr 1fr;}
  .ns2c-head{flex-direction:column;align-items:flex-start;}
  .ns2c-view-stage img{max-width:86vw;}
  .ns2-cards{grid-template-columns:1fr;gap:14px;}
  .ns2-card:nth-child(2){--ns2-y:0px;}
  .sec-wk-ns2.live .ns2-card{animation:none;}
  .ns2b-modes{max-height:none;}
  .ns3-fig{justify-self:stretch;}
  .ns4-body{grid-template-columns:1fr;gap:16px;}
  .ns4-steps{flex-direction:row;flex-wrap:wrap;justify-content:flex-start;}
  .ns4-step s{display:none;}
  .ns4-shots{grid-template-columns:1fr;}
  .ns5-strip{grid-template-columns:repeat(2,1fr);}
}

/* ---------- 海报内页：取景器轮播（弧线卡片 + 中央取景框，参数在 CONFIG.pv） ---------- */
/* 海报/产品/其他内页：顶栏 + 主舞台共用对齐变量（优先级高于 .sec-sub） */
.sec-wk-pv.sec-sub,.sec-wk-pr.sec-sub,.sec-wk-od.sec-sub,.sec-wk-uic.sec-sub{
  --wkStageY:46%;
  --wkNavY:46%;
  --wkNavInset:clamp(4px,2.6vw,44px);
  --wkMetaBottom:clamp(52px,8vh,84px);
  --wkHintBottom:clamp(6px,1.6vh,18px);
  height:100vh;min-height:100vh;max-height:100vh;overflow:hidden;
  padding:clamp(68px,calc(5vh + 20px),82px) var(--pad) clamp(12px,1.8vh,28px);
  justify-content:flex-start;box-sizing:border-box;}
.sec-wk-pv.sec-sub .inner,.sec-wk-pr.sec-sub .inner,.sec-wk-od.sec-sub .inner,.sec-wk-uic.sec-sub .inner{display:flex;flex-direction:column;flex:1;min-height:0;width:100%;position:relative;}
.pv{position:relative;flex:1;min-height:0;
  --pvW:clamp(220px,36vh,330px);          /* 取景框宽度，高度按 1.06 倍随动 */
  --pvCardW:clamp(88px,8.4vw,136px);      /* 弧线上小卡片的宽度 */
  --pvMid:var(--wkStageY,46%);}                            /* 取景框与弧线垂直中心 */
.pv-arc{position:absolute;inset:0;z-index:4;}
.pv-card{position:absolute;left:50%;top:var(--pvMid);width:var(--pvCardW);
  background:var(--paper);padding:5px 5px 8px;border-radius:2px;cursor:pointer;
  box-shadow:0 10px 22px rgba(40,37,32,.16),0 2px 5px rgba(40,37,32,.1);
  will-change:transform,opacity;pointer-events:auto;
  transition:box-shadow var(--dur-fast),filter var(--dur-fast);}
.pv-card:hover{box-shadow:0 14px 28px rgba(40,37,32,.22),0 3px 8px rgba(40,37,32,.12);
  filter:brightness(1.03);}
.pv-card img{width:100%;aspect-ratio:4/5;object-fit:cover;filter:saturate(.72);
  pointer-events:none;}
.pv-stage{position:absolute;left:50%;top:var(--pvMid);transform:translate(-50%,-50%);
  z-index:6;display:flex;align-items:center;justify-content:center;
  width:min(92vw,980px);pointer-events:none;
  transition:opacity .45s var(--ease),transform .55s var(--ease);}
.sec-wk-pv.is-expand .pv-stage{opacity:0;transform:translate(-50%,-50%) scale(.92);pointer-events:none;}
.pv-frame{position:relative;width:var(--pvW);flex-shrink:0;background:#2E2822;border-radius:18px;
  padding:clamp(10px,1.2vh,14px);pointer-events:auto;
  box-shadow:0 24px 48px rgba(40,37,32,.34),0 5px 12px rgba(40,37,32,.2);
  transition:transform .55s var(--ease),opacity .45s var(--ease);}
.pv-tape{position:absolute;left:-16px;top:-11px;width:60px;height:22px;z-index:7;
  background:rgba(228,214,188,.88);transform:rotate(-8deg);
  box-shadow:0 1px 3px rgba(40,37,32,.2);}
.pv-screen{position:relative;display:block;width:100%;height:calc(var(--pvW)*1.06);
  border-radius:10px;overflow:hidden;background:#1C1813;border:none;padding:0;cursor:pointer;
  transition:box-shadow var(--dur-fast);}
.pv-screen:hover{box-shadow:inset 0 0 0 1px rgba(255,251,243,.12);}
.pv-screen:focus-visible{outline:2px solid var(--acc);outline-offset:3px;}
.pv-im{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;}
.pv-im[hidden]{display:none;}   /* 全局 img{display:block} 会盖掉 hidden，这里补回来 */
.pv-chin{display:flex;align-items:center;justify-content:center;gap:9px;
  padding-top:clamp(8px,1vh,12px);}

/* 点击中央：脱离平板取景框，左图右文占满内容区 */
.pv-expand{position:absolute;left:0;right:0;bottom:0;top:0;z-index:30;
  display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:clamp(14px,2.4vw,36px);align-items:center;
  padding:clamp(8px,1.2vh,16px) clamp(12px,1.6vw,24px) clamp(12px,2vh,20px)
    clamp(12px,2.4vw,40px);
  opacity:0;pointer-events:none;visibility:hidden;
  transition:opacity .5s var(--ease),visibility 0s linear .5s;}
.sec-wk-pv.is-expand .pv-expand{
  opacity:1;pointer-events:auto;visibility:visible;transition:opacity .55s var(--ease);
  background:var(--wash);cursor:pointer;}
.sec-wk-pv.is-expand .pv-expand-left img,
.sec-wk-pv.is-expand .pv-expand-copy{cursor:default;}
.sec-wk-pv.is-expand .sub-head,
.sec-wk-pv.is-expand .sub-bar{opacity:0;pointer-events:none;transition:opacity .35s var(--ease);}
.sec-wk-pv.is-expand .pv-arc,
.sec-wk-pv.is-expand .pv-nav,
.sec-wk-pv.is-expand .pv-meta,
.sec-wk-pv.is-expand .pv-hint{opacity:0;pointer-events:none;
  transition:opacity .35s var(--ease);}
.pv-expand-left{display:flex;align-items:center;justify-content:center;
  min-height:0;height:100%;padding:clamp(8px,1.5vh,20px);
  transform:translateX(-28px) scale(.88);opacity:0;
  transition:transform .62s var(--ease),opacity .5s var(--ease);}
.sec-wk-pv.is-expand .pv-expand-left{transform:none;opacity:1;}
.pv-expand-left img{max-width:100%;max-height:min(76vh,920px);width:auto;height:auto;
  object-fit:contain;display:block;
  box-shadow:0 clamp(16px,2.4vh,28px) clamp(36px,4.8vh,56px) rgba(40,37,32,.2);
  border:1px solid rgba(216,210,198,.85);background:var(--paper);
  padding:clamp(8px,.9vw,14px);border-radius:2px;}
.pv-expand-copy{position:relative;align-self:center;justify-self:start;
  max-width:min(100%,420px);margin-left:clamp(-8px,-1.2vw,-32px);
  background:var(--paper);border:1px solid var(--line);border-radius:3px;
  padding:clamp(28px,3.2vw,44px) clamp(22px,2.4vw,36px) clamp(24px,2.8vw,38px);
  box-shadow:0 18px 40px rgba(40,37,32,.1);
  transform:translateX(18px);opacity:0;
  transition:transform .62s var(--ease) .08s,opacity .5s var(--ease) .08s;}
.sec-wk-pv.is-expand .pv-expand-copy{transform:translateX(clamp(-12px,-1.6vw,-36px));opacity:1;}
.pv-expand-tape{position:absolute;left:50%;top:0;width:clamp(54px,5.4vw,80px);
  height:clamp(14px,1.4vw,20px);background:rgba(228,214,188,.78);
  border:1px solid rgba(111,82,48,.1);mix-blend-mode:multiply;
  transform:translate(-50%,-52%) rotate(-3deg);}
.pv-expand-idx{font-size:clamp(9px,.72vw,11px);letter-spacing:.34em;color:var(--ink3);
  margin-bottom:clamp(12px,1.6vh,18px);}
.pv-expand-title{font-weight:400;font-size:clamp(16px,1.45vw,24px);letter-spacing:.08em;
  color:var(--ink);line-height:1.45;margin-bottom:clamp(14px,2vh,22px);}
html[data-lang="zh"] .pv-expand-title{font-family:var(--cn);letter-spacing:.12em;}
.pv-expand-desc{font-family:var(--cn);font-weight:300;font-size:clamp(11.5px,.95vw,15px);
  line-height:2;color:var(--ink2);max-width:36ch;}
html[data-lang="en"] .pv-expand-desc{font-family:var(--disp);line-height:1.9;}
.pv-expand-close{margin-top:clamp(22px,3vh,36px);font-family:var(--cn);
  font-size:clamp(10.5px,.84vw,12.5px);letter-spacing:.08em;
  color:var(--ink2);border:1px solid var(--line);border-radius:999px;
  padding:.6em 1.25em;background:var(--wash);transition:all var(--dur-fast);}
html[data-lang="en"] .pv-expand-close{font-family:var(--disp);}
.pv-expand-close:hover{border-color:var(--acc);color:var(--acc);}
.pv-dot{width:7px;height:7px;border-radius:50%;background:#B4462F;
  box-shadow:0 0 6px rgba(180,70,47,.75);}
.pv-count{font-size:10px;letter-spacing:.32em;font-weight:400;
  color:rgba(255,251,243,.7);}
.pv-nav{position:absolute;top:var(--pvMid);z-index:8;width:clamp(34px,3vw,44px);
  height:clamp(34px,3vw,44px);margin-top:calc(clamp(34px,3vw,44px)/-2);border-radius:50%;
  border:1.4px solid rgba(111,82,48,.38);color:var(--ink2);font-size:21px;line-height:1;
  display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.6);
  transition:all var(--dur-fast);}
.pv-nav:hover{border-color:var(--acc);color:var(--acc);background:#fff;
  transform:scale(1.1);}
.pv-prev{left:clamp(4px,2.6vw,44px);}
.pv-next{right:clamp(4px,2.6vw,44px);}
.pv-meta{position:absolute;left:50%;top:calc(var(--pvMid) + var(--pvW)*.63 + clamp(14px,2vh,24px));
  transform:translateX(-50%);text-align:center;z-index:7;width:min(64vw,560px);
  transition:opacity .35s var(--ease);}
.pv-idx{font-size:clamp(9px,.72vw,11px);letter-spacing:.34em;color:var(--ink3);}
.pv-title{margin-top:clamp(4px,.7vh,8px);font-weight:300;letter-spacing:.08em;
  font-size:clamp(14px,1.25vw,19px);color:var(--ink2);}
html[data-lang="zh"] .pv-title{font-family:var(--cn);letter-spacing:.14em;}
.pv-hint{position:absolute;left:50%;bottom:clamp(6px,1.6vh,18px);transform:translateX(-50%);
  font-size:clamp(9px,.72vw,11px);letter-spacing:.2em;color:var(--ink3);opacity:.75;
  white-space:nowrap;}
html[data-lang="zh"] .pv-hint{font-family:var(--cn);}

/* ---------- 内页（Bio / Toolbox / Photos：默认隐藏，点卡片才出现） ---------- */
.sec-sub{justify-content:flex-start;
  padding-top:clamp(92px,10vh,128px);padding-bottom:clamp(40px,5vh,72px);}
.sec-sub.is-reveal .inner{animation:photosContentIn .32s var(--ease) .06s both;}
body.flip-transition .sec-sub.is-reveal .inner{animation:subFlipReveal .6s cubic-bezier(.16,1,.3,1) .12s both;}
.sec-sub .sub-head{margin-top:clamp(24px,2.4vh,36px);align-items:flex-start;}
.sec-sub .sub-bar{position:relative;margin:clamp(16px,2vw,28px) 0;flex-shrink:0;}
.sec-sub .sub-bar .rule{margin:0;}
.sec-sub .sub-back{position:absolute;right:0;bottom:calc(100% + 12px);z-index:20;margin:0;}
.sec-sub .kick{margin-bottom:clamp(8px,1vw,14px);}
.sub-back{font-family:var(--cn);font-size:clamp(10.5px,.84vw,12.5px);letter-spacing:.08em;
  color:var(--ink2);border:1px solid var(--line);border-radius:999px;padding:.65em 1.25em;
  white-space:nowrap;transition:all var(--dur-fast);flex-shrink:0;}
html[data-lang="en"] .sub-back{font-family:var(--disp);}
.sub-back:hover{border-color:var(--acc);color:var(--acc);}

/* 海报/产品/其他内页：顶栏（标题 / 返回 / 横线） */
.sec-wk-pv.sec-sub .sub-head,.sec-wk-pr.sec-sub .sub-head,.sec-wk-od.sec-sub .sub-head,.sec-wk-uic.sec-sub .sub-head{margin-top:clamp(4px,.5vh,10px);}
.sec-wk-pv.sec-sub .sub-head,.sec-wk-pr.sec-sub .sub-head,.sec-wk-od.sec-sub .sub-head,
.sec-wk-pv.sec-sub .sub-bar,.sec-wk-pr.sec-sub .sub-bar,.sec-wk-od.sec-sub .sub-bar,.sec-wk-uic.sec-sub .sub-head,.sec-wk-uic.sec-sub .sub-bar{position:relative;z-index:12;flex-shrink:0;}
.sec-wk-pv.sec-sub .head-row,.sec-wk-pr.sec-sub .head-row,.sec-wk-od.sec-sub .head-row,.sec-wk-uic.sec-sub .head-row{margin-bottom:clamp(5px,.6vw,10px);}
.sec-wk-pv.sec-sub .sub-bar,.sec-wk-pr.sec-sub .sub-bar,.sec-wk-od.sec-sub .sub-bar,.sec-wk-uic.sec-sub .sub-bar{margin:clamp(2px,.3vh,6px) 0 clamp(3px,.4vh,8px);}
.sec-wk-od.sec-sub .sub-head{margin-top:calc(clamp(4px,.5vh,10px) + 12px);}

/* ---------- 产品内页：环形弧面屏展廊（参数在 CONFIG.pr，几何由 js 计算） ---------- */
.pr{position:relative;flex:1;min-height:0;user-select:none;-webkit-user-select:none;}
.pr-stage{position:absolute;inset:0;overflow:visible;cursor:grab;touch-action:none;}
.pr-stage.grabbing{cursor:grabbing;}
.pr-hit{position:absolute;left:50%;top:var(--wkStageY,46%);transform:translate(-50%,-50%);
  width:clamp(150px,24vw,360px);height:clamp(88px,26vh,340px);z-index:10;
  padding:0;border:none;background:transparent;cursor:pointer;border-radius:14px;
  transition:background .25s var(--ease),opacity .25s var(--ease);}
.pr-hit:hover{background:rgba(255,255,255,.06);}
.pr-hit:focus-visible{outline:2px solid var(--acc);outline-offset:4px;}
.sec-wk-pr.is-expand .pr-hit{opacity:0;pointer-events:none;}
.pr-ring{position:absolute;left:50%;top:var(--wkStageY,46%);width:0;height:0;
  transform-style:preserve-3d;will-change:transform;}
.pr-panel{position:absolute;left:0;top:0;transform-style:preserve-3d;cursor:default;}
.pr-panel.is-front{cursor:pointer;}
.pr-curve{position:absolute;left:0;top:0;width:100%;height:100%;transform-style:preserve-3d;}
.pr-slice{position:absolute;top:50%;left:50%;overflow:hidden;background:#26211B;
  backface-visibility:hidden;}
.pr-slice img{position:absolute;left:0;width:100%;height:100%;object-fit:cover;
  max-width:none;filter:brightness(var(--shade,1)) saturate(.94);pointer-events:none;}
.pr-slice-first{border-radius:10px 0 0 10px;}
.pr-slice-last{border-radius:0 10px 10px 0;}
.pr-panel::after{content:"";position:absolute;left:0;top:0;width:100%;height:100%;
  pointer-events:none;}
.pr-nav{position:absolute;top:var(--wkNavY,46%);z-index:9;width:clamp(34px,3vw,44px);
  height:clamp(34px,3vw,44px);border-radius:50%;border:1px solid var(--line);
  background:rgba(255,255,255,.82);color:var(--ink2);font-size:clamp(17px,1.5vw,22px);
  line-height:1;display:flex;align-items:center;justify-content:center;
  transition:all var(--dur-fast);transform:translateY(-50%);}
.pr-nav:hover{border-color:var(--acc);color:var(--acc);background:#fff;
  box-shadow:0 6px 16px rgba(40,37,32,.14);}
.pr-prev{left:var(--wkNavInset,clamp(4px,2.6vw,44px));}
.pr-next{right:var(--wkNavInset,clamp(4px,2.6vw,44px));}
.pr-meta{position:absolute;left:50%;bottom:var(--wkMetaBottom,clamp(52px,8vh,84px));transform:translateX(-50%);
  width:min(70vw,720px);text-align:center;pointer-events:none;}
.pr-idx{font-size:clamp(9px,.72vw,11px);letter-spacing:.34em;color:var(--ink3);}
.pr-title{margin-top:clamp(4px,.7vh,8px);font-weight:300;letter-spacing:.08em;
  font-size:clamp(13px,1.15vw,18px);color:var(--ink);}
html[data-lang="zh"] .pr-title{font-family:var(--cn);letter-spacing:.14em;}
.pr-pages{position:absolute;left:50%;bottom:clamp(26px,4.4vh,50px);transform:translateX(-50%);
  display:flex;gap:clamp(10px,1.3vw,22px);z-index:9;}
.pr-pages b{font-weight:400;font-size:clamp(9px,.76vw,11.5px);letter-spacing:.22em;
  color:var(--ink3);opacity:.55;cursor:pointer;padding:4px 2px;position:relative;
  transition:opacity var(--dur-fast),color var(--dur-fast);}
.pr-pages b::after{content:"";position:absolute;left:15%;right:15%;bottom:0;height:1.5px;
  background:var(--acc);transform:scaleX(0);transition:transform .3s var(--ease);}
.pr-pages b:hover{opacity:.95;}
.pr-pages b.on{opacity:1;color:var(--acc);}
.pr-pages b.on::after{transform:scaleX(1);}
.pr-hint{position:absolute;left:50%;bottom:var(--wkHintBottom,clamp(6px,1.6vh,18px));transform:translateX(-50%);
  font-size:clamp(9px,.72vw,11px);letter-spacing:.2em;color:var(--ink3);opacity:.75;
  white-space:nowrap;}
html[data-lang="zh"] .pr-hint{font-family:var(--cn);}

/* 点击正面屏：左图右文全屏展开（与海报内页同结构） */
.pr-expand{position:absolute;left:0;right:0;bottom:0;top:0;z-index:30;
  display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);
  gap:clamp(12px,2vw,32px);align-items:stretch;
  padding:clamp(4px,1vh,12px) clamp(12px,1.6vw,24px) clamp(8px,1.6vh,16px)
    clamp(12px,2.4vw,40px);
  opacity:0;pointer-events:none;visibility:hidden;
  transition:opacity .5s var(--ease),visibility 0s linear .5s;}
.sec-wk-pr.is-expand .pr-expand{
  position:fixed;inset:0;z-index:620;
  opacity:1;pointer-events:auto;visibility:visible;transition:opacity .55s var(--ease);
  background:var(--wash);cursor:pointer;
  padding:clamp(72px,8vh,96px) clamp(12px,1.6vw,24px) clamp(12px,2vh,20px)
    clamp(12px,2.4vw,40px);}
.sec-wk-pr.is-expand .pr-expand-left img,
.sec-wk-pr.is-expand .pr-expand-copy{cursor:default;}
.sec-wk-pr.is-expand .sub-head,
.sec-wk-pr.is-expand .sub-bar{opacity:0;pointer-events:none;transition:opacity .35s var(--ease);}
.sec-wk-pr.is-expand .pr-stage,
.sec-wk-pr.is-expand .pr-nav,
.sec-wk-pr.is-expand .pr-meta,
.sec-wk-pr.is-expand .pr-pages,
.sec-wk-pr.is-expand .pr-hint{opacity:0;pointer-events:none;
  transition:opacity .35s var(--ease);}
.pr-expand-left{display:flex;align-items:center;justify-content:center;
  min-height:0;height:100%;padding:clamp(8px,1.5vh,20px);
  transform:translateX(-28px) scale(.88);opacity:0;
  transition:transform .62s var(--ease),opacity .5s var(--ease);}
.sec-wk-pr.is-expand .pr-expand-left{transform:none;opacity:1;}
.pr-expand-left img{width:100%;height:100%;max-width:100%;max-height:min(92vh,calc(100vh - 48px));
  object-fit:contain;display:block;
  box-shadow:0 clamp(16px,2.4vh,28px) clamp(36px,4.8vh,56px) rgba(40,37,32,.2);
  border:1px solid rgba(216,210,198,.85);background:var(--paper);
  padding:clamp(8px,.9vw,14px);border-radius:2px;}
.pr-expand-copy{position:relative;align-self:center;justify-self:start;
  max-width:min(100%,420px);margin-left:clamp(-8px,-1.2vw,-32px);
  background:var(--paper);border:1px solid var(--line);border-radius:3px;
  padding:clamp(28px,3.2vw,44px) clamp(22px,2.4vw,36px) clamp(24px,2.8vw,38px);
  box-shadow:0 18px 40px rgba(40,37,32,.1);
  transform:translateX(18px);opacity:0;
  transition:transform .62s var(--ease) .08s,opacity .5s var(--ease) .08s;}
.sec-wk-pr.is-expand .pr-expand-copy{transform:translateX(clamp(-12px,-1.6vw,-36px));opacity:1;}
.pr-expand-tape{position:absolute;left:50%;top:0;width:clamp(54px,5.4vw,80px);
  height:clamp(14px,1.4vw,20px);background:rgba(228,214,188,.78);
  border:1px solid rgba(111,82,48,.1);mix-blend-mode:multiply;
  transform:translate(-50%,-52%) rotate(-3deg);}
.pr-expand-idx{font-size:clamp(9px,.72vw,11px);letter-spacing:.34em;color:var(--ink3);
  margin-bottom:clamp(12px,1.6vh,18px);}
.pr-expand-title{font-weight:400;font-size:clamp(16px,1.45vw,24px);letter-spacing:.08em;
  color:var(--ink);line-height:1.45;margin-bottom:clamp(14px,2vh,22px);}
html[data-lang="zh"] .pr-expand-title{font-family:var(--cn);letter-spacing:.12em;}
.pr-expand-desc{font-family:var(--cn);font-weight:300;font-size:clamp(11.5px,.95vw,15px);
  line-height:2;color:var(--ink2);max-width:36ch;}
html[data-lang="en"] .pr-expand-desc{font-family:var(--disp);line-height:1.9;}
.pr-expand-close{margin-top:clamp(22px,3vh,36px);font-family:var(--cn);
  font-size:clamp(10.5px,.84vw,12.5px);letter-spacing:.08em;
  color:var(--ink2);border:1px solid var(--line);border-radius:999px;
  padding:.6em 1.25em;background:var(--wash);transition:all var(--dur-fast);}
html[data-lang="en"] .pr-expand-close{font-family:var(--disp);}
.pr-expand-close:hover{border-color:var(--acc);color:var(--acc);}

/* ---------- 其他设计内页：球形 3D 展廊 ----------
   作品图标均匀分布在球面，持续慢速旋转。参数 CONFIG.od。 */
.od{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;
  user-select:none;-webkit-user-select:none;}
.od-stage{position:relative;flex:1;min-height:0;perspective:1600px;
  perspective-origin:50% 50%;overflow:visible;cursor:default;pointer-events:none;}
.od-hit{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  pointer-events:auto;overflow:visible;z-index:1;}
.od-stage.is-expanded{cursor:default;}
.od-rail{position:absolute;left:50%;top:50%;width:0;height:0;transform-style:preserve-3d;
  pointer-events:none;}
.od-globe{position:absolute;left:0;top:0;width:0;height:0;transform-style:preserve-3d;
  will-change:transform;}
.od-card{position:absolute;left:0;top:0;pointer-events:none;transform-style:preserve-3d;
  will-change:transform;}
.od-unit{position:absolute;left:0;top:0;width:100%;display:flex;flex-direction:column;align-items:center;
  transform-style:preserve-3d;}
.od-stage.is-expanded .od-card{cursor:pointer;}
.od-face{position:relative;flex-shrink:0;width:100%;aspect-ratio:1;overflow:hidden;background:var(--paper);
  border-radius:clamp(8px,14%,12px);
  box-shadow:0 8px 18px rgba(40,37,32,.14),0 2px 6px rgba(40,37,32,.08);
  transition:box-shadow .32s var(--ease);}
.od-card.is-hovered .od-face{
  box-shadow:0 16px 32px rgba(40,37,32,.24),0 5px 14px rgba(40,37,32,.14);}
.od-card.is-front .od-face{
  box-shadow:0 14px 28px rgba(40,37,32,.22),0 4px 12px rgba(40,37,32,.12);}
.od-card-title{margin:clamp(6px,.85vh,10px) 0 0;padding:0 clamp(4px,.5vw,8px);
  font-weight:300;letter-spacing:.08em;font-size:clamp(10px,.82vw,13px);line-height:1.35;
  color:var(--ink2);white-space:nowrap;max-width:min(28vw,168px);overflow:hidden;
  text-overflow:ellipsis;pointer-events:none;opacity:0;transform:translateY(5px);
  transition:opacity .28s var(--ease),transform .28s var(--ease);}
html[data-lang="zh"] .od-card-title{font-family:var(--cn);letter-spacing:.12em;}
.od-card.is-hovered .od-card-title{opacity:1;transform:translateY(0);}
.od-im{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  pointer-events:none;
  filter:brightness(var(--odShade,1)) saturate(calc(.78 + .22 * var(--odShade,1)));
  transition:filter .28s var(--ease);}
.od-foot{flex-shrink:0;text-align:center;padding:clamp(8px,1.2vh,14px) 0 clamp(4px,1vh,10px);
  pointer-events:none;transition:opacity .35s var(--ease);}
.od-foot .od-meta{display:none;}
.od-meta{width:min(70vw,720px);margin:0 auto;}
.od-idx{font-size:clamp(9px,.72vw,11px);letter-spacing:.34em;color:var(--ink3);}
.od-title{margin-top:clamp(4px,.7vh,8px);font-weight:300;letter-spacing:.08em;
  font-size:clamp(13px,1.15vw,18px);color:var(--ink);}
html[data-lang="zh"] .od-title{font-family:var(--cn);letter-spacing:.14em;}
.od-hint{margin-top:clamp(4px,.6vh,8px);font-size:clamp(9px,.72vw,11px);letter-spacing:.2em;
  color:var(--ink3);opacity:.75;white-space:nowrap;}
html[data-lang="zh"] .od-hint{font-family:var(--cn);}

/* 点击网格图标：左图右文全屏展开 */
.od-expand{position:absolute;left:0;right:0;bottom:0;top:0;z-index:30;
  display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);
  gap:clamp(12px,2vw,32px);align-items:stretch;
  padding:clamp(4px,1vh,12px) clamp(12px,1.6vw,24px) clamp(8px,1.6vh,16px)
    clamp(12px,2.4vw,40px);
  opacity:0;pointer-events:none;visibility:hidden;
  transition:opacity .5s var(--ease),visibility 0s linear .5s;}
.sec-wk-od.is-expand .od-expand{
  position:fixed;inset:0;z-index:620;
  opacity:1;pointer-events:auto;visibility:visible;transition:opacity .55s var(--ease);
  background:var(--wash);cursor:pointer;
  padding:clamp(72px,8vh,96px) clamp(12px,1.6vw,24px) clamp(12px,2vh,20px)
    clamp(12px,2.4vw,40px);}
.sec-wk-od.is-expand .od-expand-left img,
.sec-wk-od.is-expand .od-expand-copy{cursor:default;}
.sec-wk-od.is-expand .sub-head,
.sec-wk-od.is-expand .sub-bar{opacity:0;pointer-events:none;transition:opacity .35s var(--ease);}
.sec-wk-od.is-expand .od-stage,
.sec-wk-od.is-expand .od-foot{opacity:0;pointer-events:none;transition:opacity .35s var(--ease);}
.od-expand-left{display:flex;align-items:center;justify-content:center;
  min-height:0;height:100%;padding:clamp(8px,1.5vh,20px);
  transform:translateX(-28px) scale(.88);opacity:0;
  transition:transform .62s var(--ease),opacity .5s var(--ease);}
.sec-wk-od.is-expand .od-expand-left{transform:none;opacity:1;}
.od-expand-left img{width:100%;height:100%;max-width:100%;max-height:min(92vh,calc(100vh - 48px));
  object-fit:contain;display:block;transform:scale(.14);
  box-shadow:0 clamp(16px,2.4vh,28px) clamp(36px,4.8vh,56px) rgba(40,37,32,.2);
  border:1px solid rgba(216,210,198,.85);background:var(--paper);
  padding:clamp(8px,.9vw,14px);border-radius:2px;
  transition:transform .68s var(--ease),box-shadow .5s var(--ease);}
.sec-wk-od.is-expand .od-expand-left img{transform:scale(1);}
.od-expand-copy{position:relative;align-self:center;justify-self:start;
  max-width:min(100%,420px);margin-left:clamp(-8px,-1.2vw,-32px);
  background:var(--paper);border:1px solid var(--line);border-radius:3px;
  padding:clamp(28px,3.2vw,44px) clamp(22px,2.4vw,36px) clamp(24px,2.8vw,38px);
  box-shadow:0 18px 40px rgba(40,37,32,.1);
  transform:translateX(18px);opacity:0;
  transition:transform .62s var(--ease) .08s,opacity .5s var(--ease) .08s;}
.sec-wk-od.is-expand .od-expand-copy{transform:translateX(clamp(-12px,-1.6vw,-36px));opacity:1;}
.od-expand-tape{position:absolute;left:50%;top:0;width:clamp(54px,5.4vw,80px);
  height:clamp(14px,1.4vw,20px);background:rgba(228,214,188,.78);
  border:1px solid rgba(111,82,48,.1);mix-blend-mode:multiply;
  transform:translate(-50%,-52%) rotate(-3deg);}
.od-expand-idx{font-size:clamp(9px,.72vw,11px);letter-spacing:.34em;color:var(--ink3);
  margin-bottom:clamp(12px,1.6vh,18px);}
.od-expand-title{font-weight:400;font-size:clamp(16px,1.45vw,24px);letter-spacing:.08em;
  color:var(--ink);line-height:1.45;margin-bottom:clamp(14px,2vh,22px);}
html[data-lang="zh"] .od-expand-title{font-family:var(--cn);letter-spacing:.12em;}
.od-expand-desc{font-family:var(--cn);font-weight:300;font-size:clamp(11.5px,.95vw,15px);
  line-height:2;color:var(--ink2);max-width:36ch;}
html[data-lang="en"] .od-expand-desc{font-family:var(--disp);line-height:1.9;}
.od-expand-close{margin-top:clamp(22px,3vh,36px);font-family:var(--cn);
  font-size:clamp(10.5px,.84vw,12.5px);letter-spacing:.08em;
  color:var(--ink2);border:1px solid var(--line);border-radius:999px;
  padding:.6em 1.25em;background:var(--wash);transition:all var(--dur-fast);}
html[data-lang="en"] .od-expand-close{font-family:var(--disp);}
.od-expand-close:hover{border-color:var(--acc);color:var(--acc);}

/* ---------- 数字交互内页：环形 3D 展廊 ----------
   每件作品均匀围成一圈，正对观者的为主视图。参数 CONFIG.ui。 */
.uic{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;
  user-select:none;-webkit-user-select:none;overflow:visible;}
.uic-stage{position:relative;flex:1;min-height:0;perspective:1500px;
  perspective-origin:50% 50%;overflow:visible;}
.uic-rail{position:absolute;left:50%;top:50%;width:0;height:0;transform-style:preserve-3d;
  pointer-events:none;}
.uic-card{position:absolute;left:0;top:0;cursor:pointer;pointer-events:auto;
  transform-style:preserve-3d;overflow:visible;
  will-change:transform,opacity;background:transparent;
  transition:box-shadow .28s var(--ease);}
.uic-face{position:absolute;inset:0;overflow:hidden;background:var(--paper);
  border-radius:clamp(14px,18%,24px);
  box-shadow:0 18px 36px rgba(40,37,32,.14),0 4px 10px rgba(40,37,32,.08);
  transition:box-shadow .28s var(--ease),transform .28s var(--ease);}
.uic-card.is-front .uic-face{
  box-shadow:0 28px 52px rgba(40,37,32,.22),0 6px 16px rgba(40,37,32,.14);}
.uic-card.is-front:hover .uic-face{transform:scale(1.05);}
.uic-card:not(.is-front):hover .uic-face{
  box-shadow:0 24px 44px rgba(40,37,32,.22),0 7px 18px rgba(40,37,32,.14);}
.uic-art{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;
  pointer-events:none;padding:clamp(6px,8%,12px);
  filter:brightness(var(--uicShade,1)) saturate(calc(.82 + .18 * var(--uicShade,1)));
  transition:filter .28s var(--ease);}
.uic-card:not(.is-front):hover .uic-art{
  filter:brightness(calc(var(--uicShade,1) + .09)) saturate(calc(.88 + .12 * var(--uicShade,1)));}
.uic-meta{position:absolute;left:50%;transform:translateX(-50%);
  z-index:24;pointer-events:none;width:min(72vw,420px);text-align:center;
  opacity:0;transition:opacity .38s var(--ease);}
.uic-meta.is-visible{opacity:1;}
.uic-title{margin:0;font-weight:300;letter-spacing:.08em;font-size:clamp(13px,1.15vw,17px);
  line-height:1.4;color:var(--ink2);
  text-shadow:0 2px 5px rgba(40,37,32,.16),0 1px 2px rgba(40,37,32,.1);}
html[data-lang="zh"] .uic-title{font-family:var(--cn);letter-spacing:.14em;}
.uic-title.is-clickable{pointer-events:auto;cursor:pointer;transition:color .2s var(--ease);}
.uic-title.is-clickable:hover{color:var(--acc);}
.uic-tip{position:absolute;inset:0;z-index:40;pointer-events:none;opacity:0;
  transition:opacity .28s var(--ease);}
.uic-tip:not([hidden]){pointer-events:auto;opacity:1;}
.uic-tip[hidden]{display:none;}
.uic-tip-backdrop{position:absolute;inset:0;border:none;padding:0;background:transparent;cursor:pointer;}
.uic-tip-panel{position:absolute;z-index:1;width:236px;max-width:min(calc(100vw - 48px),236px);
  padding:clamp(16px,2vw,22px) clamp(18px,2.2vw,24px);
  background:var(--paper);border:1px solid var(--line);
  box-shadow:0 18px 40px rgba(40,37,32,.14),0 4px 12px rgba(40,37,32,.08);
  border-radius:clamp(12px,1.6vw,18px);
  transform:translateY(-50%) translateX(-24px) scale(.92);transform-origin:left center;
  opacity:0;pointer-events:auto;
  transition:transform .56s cubic-bezier(.16,1,.3,1),opacity .32s var(--ease),box-shadow .28s var(--ease);}
.uic-tip.is-visible .uic-tip-panel{
  transform:translateY(-50%) translateX(0) scale(1);opacity:1;
  box-shadow:0 22px 46px rgba(40,37,32,.16),0 6px 14px rgba(40,37,32,.1);}
.uic-tip[data-side="left"] .uic-tip-panel{
  transform:translateY(-50%) translateX(24px) scale(.92);transform-origin:right center;}
.uic-tip.is-visible[data-side="left"] .uic-tip-panel{
  transform:translateY(-50%) translateX(0) scale(1);}
.uic-tip-text{margin:0;font-weight:300;font-size:clamp(12px,1.05vw,15px);line-height:1.65;
  letter-spacing:.06em;color:var(--ink2);text-align:left;white-space:pre-line;}
html[data-lang="zh"] .uic-tip-text{font-family:var(--cn);letter-spacing:.1em;}
.uic-tip-run{display:block;width:100%;margin-top:clamp(12px,1.4vw,16px);padding:.62em 1em;
  font-family:var(--cn);font-size:clamp(11px,.95vw,13px);letter-spacing:.12em;
  color:#fff;background:var(--acc);border:1px solid var(--acc);border-radius:999px;
  cursor:pointer;transition:transform .2s var(--ease),box-shadow .2s var(--ease),opacity .2s;}
.uic-tip-run:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(40,37,32,.14);}
.uic-tip-run[hidden]{display:none;}
html[data-lang="en"] .uic-tip-run{font-family:var(--disp);letter-spacing:.06em;}

body.uic-run-lock{overflow:hidden;}
.uic-run-full{position:fixed;inset:0;z-index:1100;background:rgba(251,250,246,.97);
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .44s var(--ease),visibility .44s var(--ease);}
.uic-run-full.is-visible{opacity:1;visibility:visible;pointer-events:auto;}
.uic-run-full[hidden]{display:block;}
.uic-run-stage{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;}
.uic-run-phone{width:100%;height:100%;display:flex;align-items:center;justify-content:center;}
.uic-run-full:not(.is-phone) .uic-run-phone{width:100%;height:100%;}
.uic-run-full:not(.is-phone) .uic-run-phone-shell{width:100%;height:100%;padding:0;border:none;
  background:transparent;box-shadow:none;border-radius:0;}
.uic-run-full:not(.is-phone) .uic-run-phone-notch,
.uic-run-full:not(.is-phone) .uic-run-phone-bar{display:none;}
/* 桌面全屏预览：screen 必须显式撑满，否则 iframe 塌成默认 150px 高 */
.uic-run-full:not(.is-phone) .uic-run-phone-screen{border-radius:0;width:100%;height:100%;}
.uic-run-full.is-phone .uic-run-phone-shell{
  width:min(92vw,390px);height:min(92vh,844px);max-height:calc(100vh - 48px);
  padding:clamp(10px,1.8vw,14px);border-radius:clamp(28px,5vw,44px);
  background:linear-gradient(160deg,#2a2a2e 0%,#111113 100%);
  box-shadow:0 32px 64px rgba(17,17,20,.28),inset 0 0 0 1px rgba(255,255,255,.08);
  display:flex;flex-direction:column;position:relative;}
.uic-run-full.is-phone .uic-run-phone-notch{
  position:absolute;top:clamp(8px,1.4vw,12px);left:50%;transform:translateX(-50%);
  width:clamp(72px,18vw,108px);height:clamp(5px,.8vw,7px);border-radius:999px;background:#0a0a0c;z-index:2;}
.uic-run-full.is-phone .uic-run-phone-screen{
  flex:1;min-height:0;margin-top:clamp(16px,2.4vw,22px);border-radius:clamp(18px,3vw,28px);
  overflow:hidden;background:#fff;}
.uic-run-full.is-phone .uic-run-phone-bar{
  flex-shrink:0;height:clamp(10px,1.6vw,14px);margin:clamp(8px,1.2vw,12px) auto 0;
  width:clamp(88px,22vw,128px);border-radius:999px;background:rgba(255,255,255,.22);}
.uic-run-phone-screen iframe,.uic-run-full iframe{width:100%;height:100%;border:none;background:#fff;display:block;}
.uic-run-video{max-width:min(92vw,1080px);max-height:min(88vh,810px);width:auto;height:auto;
  object-fit:contain;background:#111;border-radius:2px;display:block;}
.uic-run-video[hidden]{display:none;}
.uic-run-full.is-video .uic-run-phone-shell{width:100%;height:100%;padding:0;border:none;
  background:transparent;box-shadow:none;border-radius:0;}
.uic-run-full.is-video .uic-run-phone-notch,
.uic-run-full.is-video .uic-run-phone-bar{display:none;}
.uic-run-full.is-video .uic-run-phone-screen{display:flex;align-items:center;justify-content:center;
  width:100%;height:100%;border-radius:0;background:transparent;}
.uic-run-full.is-video iframe{display:none;}
.uic-run-full-close{position:fixed;top:clamp(14px,2vh,22px);right:clamp(14px,2vw,22px);z-index:3;
  width:42px;height:42px;border:1px solid var(--line);border-radius:999px;background:var(--paper);
  color:var(--ink2);font-size:24px;line-height:1;cursor:pointer;
  transition:color .2s var(--ease),border-color .2s var(--ease),background .2s var(--ease);}
.uic-run-full-close:hover{color:var(--acc);border-color:var(--acc);background:#fff;}
/* 桌面全屏预览：退出按钮移到右下角，避免压住 demo 自己的右上角工具条 */
.uic-run-full:not(.is-phone) .uic-run-full-close{
  top:auto;bottom:clamp(14px,2vh,22px);
  box-shadow:0 6px 18px rgba(17,17,20,.18);}

/* 工具箱内页：与关于我同高对齐，锁死一屏 */
.sec-toolbox{height:100vh;min-height:100vh;max-height:100vh;overflow:hidden;
  padding-top:clamp(60px,6.5vh,80px);padding-bottom:clamp(24px,3vh,48px);}
.sec-toolbox .sub-head{margin-top:clamp(2px,.4vh,8px);}
.sec-toolbox .head-row{margin-bottom:clamp(8px,1vw,14px);}
.sec-toolbox .rule{margin:clamp(4px,.6vh,10px) 0;}
.sec-toolbox .tb-board{margin-top:0;}

/* 关于我内页：整体内容上移 */
.sec-me{
  padding-top:clamp(60px,6.5vh,80px);padding-bottom:clamp(24px,3vh,48px);}
.sec-me .sub-head{margin-top:clamp(2px,.4vh,8px);}
.sec-me .head-row{margin-bottom:clamp(8px,1vw,14px);}
.sec-me .rule{margin:clamp(4px,.6vh,10px) 0;}
.sec-me .me-nav{margin-bottom:clamp(10px,1.4vh,20px);}
.sec-me .bio-lead{margin-bottom:clamp(10px,1.5vh,20px);}
.sec-me .things{margin-top:0;}
.sec-me .me-seg + .me-seg{margin-top:clamp(32px,5.5vh,64px);}
.sec-me .me-seg-head{margin-bottom:clamp(10px,1.4vh,18px);padding-top:clamp(4px,.8vh,12px);}
.sec-me .ph-rail{margin-top:clamp(4px,.8vh,10px);
  padding-top:clamp(10px,1.4vh,20px);padding-bottom:clamp(8px,1.2vh,14px);}

/* 关于我整合页：页内锚点 + 两段（几件事 / 照片） */
.me-nav{display:flex;gap:clamp(8px,1vw,14px);margin-bottom:clamp(20px,3vh,40px);}
.me-nav button{font-family:var(--cn);font-size:clamp(10.5px,.84vw,12.5px);letter-spacing:.08em;
  color:var(--ink2);border:1px solid var(--line);border-radius:999px;padding:.55em 1.2em;
  background:var(--paper);transition:all var(--dur-fast);}
html[data-lang="en"] .me-nav button{font-family:var(--disp);}
.me-nav button:hover{border-color:var(--acc);color:var(--acc);transform:translateY(-2px);}
.me-seg + .me-seg{margin-top:clamp(56px,9vh,110px);}
.me-seg-head{display:flex;align-items:center;gap:clamp(10px,1.2vw,16px);
  margin-bottom:clamp(16px,2.2vh,28px);padding-top:clamp(10px,1.6vh,20px);
  border-top:1px dashed var(--line);}
.me-seg-head img{width:clamp(24px,2.4vw,34px);opacity:.6;transform:rotate(-6deg);}
.disp.xs{font-size:clamp(18px,2.2vw,30px);}

/* 狗狗档案内页：整体内容上移 */
.sec-dog{padding-top:clamp(60px,6.5vh,80px);padding-bottom:clamp(24px,3vh,48px);}
.sec-dog .sub-head{margin-top:clamp(2px,.4vh,8px);}
.sec-dog .head-row{margin-bottom:clamp(8px,1vw,14px);}
.sec-dog .rule{margin:clamp(4px,.6vh,10px) 0;}
.sec-dog .dog-sub{margin-bottom:clamp(8px,1.1vh,14px);}
.sec-dog .dg-lb{margin:clamp(10px,1.4vh,18px) 0 clamp(6px,.9vh,10px);}
.sec-dog .dog-q{margin-top:clamp(10px,1.5vh,18px);}
.dog-grid{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  gap:clamp(20px,3.2vw,52px);align-items:center;margin-top:0;}
.dog-fig{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:3px;
  padding:clamp(14px,1.5vw,22px);box-shadow:0 16px 34px rgba(40,37,32,.1);
  transform:rotate(-1.6deg);max-width:min(100%,440px);}
.dog-fig img{width:100%;height:auto;}
.dog-tape{position:absolute;left:50%;top:0;width:clamp(56px,6.4vw,96px);
  height:clamp(15px,1.5vw,22px);background:rgba(228,214,188,.78);
  border:1px solid rgba(111,82,48,.1);mix-blend-mode:multiply;
  box-shadow:0 2px 6px rgba(40,37,32,.07);transform:translate(-50%,-52%) rotate(-3deg);}
.dog-sub{font-family:var(--cn);font-weight:300;font-size:clamp(11.5px,.95vw,14.5px);
  color:var(--ink3);letter-spacing:.05em;margin-bottom:clamp(13px,1.9vh,22px);}
/* 分区小标签：文字 + 虚线 */
.dg-lb{display:flex;align-items:center;gap:12px;font-family:var(--cn);
  font-size:clamp(9.5px,.76vw,11.5px);letter-spacing:.2em;color:var(--ink3);
  margin:clamp(15px,2.2vh,26px) 0 clamp(9px,1.3vh,14px);}
.dg-lb::after{content:"";flex:1;height:1px;
  background:repeating-linear-gradient(to right,var(--line) 0 4px,transparent 4px 9px);}
/* 大贴纸：图标 + 一句话 */
.dg-base,.dg-seen{display:flex;flex-wrap:wrap;gap:clamp(8px,1vw,14px);}
.dg-chip{display:inline-flex;align-items:center;gap:clamp(8px,.9vw,12px);
  background:var(--paper);border:1px solid var(--line);border-radius:3px;
  padding:clamp(8px,.95vw,13px) clamp(12px,1.3vw,18px);
  box-shadow:0 7px 16px rgba(40,37,32,.08);transform:rotate(var(--tilt,0deg));
  transition:transform .35s var(--ease),box-shadow .35s var(--ease);}
.dg-chip:hover{transform:rotate(0deg) translateY(-3px);box-shadow:0 13px 24px rgba(40,37,32,.13);}
.dg-chip img{width:clamp(17px,1.65vw,24px);height:auto;opacity:.82;flex-shrink:0;}
.dg-chip b{font-family:var(--cn);font-weight:300;font-size:clamp(11px,.92vw,14px);
  letter-spacing:.05em;color:var(--ink);line-height:1.6;}
.dg-base .dg-chip{background:linear-gradient(168deg,rgba(228,214,188,.5),rgba(228,214,188,.22));
  border-color:rgba(111,82,48,.2);}
.dg-base .dg-chip:nth-child(odd),.dg-seen .dg-chip:nth-child(odd){--tilt:-1.4deg;}
.dg-base .dg-chip:nth-child(even),.dg-seen .dg-chip:nth-child(even){--tilt:1.2deg;}
/* 性格：一词一张小贴纸，虚线描边像手撕的 */
.dg-traits{display:flex;flex-wrap:wrap;gap:clamp(7px,.85vw,11px);}
.dg-traits i{font-style:normal;font-family:var(--cn);font-weight:300;
  font-size:clamp(10.5px,.88vw,13px);letter-spacing:.08em;color:#4A3418;
  background:var(--paper);border:1.4px dashed rgba(111,82,48,.42);border-radius:999px;
  padding:.5em 1.05em;transform:rotate(var(--tilt,0deg));box-shadow:0 5px 12px rgba(40,37,32,.06);
  transition:transform .3s var(--ease);}
.dg-traits i:nth-child(3n+1){--tilt:-2deg;}
.dg-traits i:nth-child(3n+2){--tilt:1.6deg;background:rgba(228,214,188,.3);}
.dg-traits i:nth-child(3n){--tilt:-.5deg;}
.dg-traits i:hover{transform:rotate(0deg) scale(1.07);}
html[data-lang="en"] .dg-chip b,html[data-lang="en"] .dg-lb,
html[data-lang="en"] .dg-traits i{font-family:var(--disp);}
.dog-q{font-family:var(--cn);font-weight:300;font-size:clamp(12.5px,1.05vw,16px);
  color:var(--brown);line-height:1.9;margin-top:clamp(16px,2.6vh,30px);letter-spacing:.03em;}
html[data-lang="en"] .dog-sub,html[data-lang="en"] .dog-q{font-family:var(--disp);}

/* Bio 内页：「关于我的几件事」拼贴板 */
.bio-lead{font-family:var(--cn);font-weight:300;font-size:clamp(12px,1.02vw,15.5px);
  line-height:1.9;color:var(--ink3);letter-spacing:.05em;margin-bottom:clamp(18px,3vh,38px);}
.things{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(14px,1.9vw,32px);align-items:start;position:relative;z-index:4;
  margin-top:clamp(4px,1.2vh,16px);}
.th{position:relative;height:100%;background:var(--paper);border:1px solid var(--line);
  border-radius:3px;padding:clamp(17px,1.8vw,30px) clamp(16px,1.7vw,26px) clamp(18px,1.9vw,30px);
  transform:rotate(var(--tilt,0deg));box-shadow:0 9px 20px rgba(40,37,32,.07);
  transition:transform .45s var(--ease),box-shadow .45s var(--ease);}
.th-w{position:relative;}
.th::after{content:"";position:absolute;right:0;bottom:0;width:17px;height:17px;
  background:linear-gradient(135deg,rgba(216,210,198,0) 49%,rgba(216,210,198,.6) 50%);}
.th-w:hover .th{transform:rotate(0deg) translateY(-5px);box-shadow:0 18px 32px rgba(40,37,32,.13);}
.th-kraft{background:linear-gradient(168deg,rgba(228,214,188,.55),rgba(228,214,188,.26));
  border-color:rgba(111,82,48,.2);}
.th-w:nth-child(3n+1) .th{--tilt:-1.2deg;}.th-w:nth-child(3n+2) .th{--tilt:.9deg;}
.th-w:nth-child(3n) .th{--tilt:-.6deg;}
.th-top{display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-bottom:clamp(10px,1.2vh,16px);}
.th-ic{width:clamp(22px,2.1vw,30px);height:auto;opacity:.8;}
.th-n{font-style:normal;font-size:clamp(9px,.72vw,11px);letter-spacing:.22em;color:var(--ink3);}
.th h4{font-family:var(--cn);font-weight:400;font-size:clamp(13px,1.14vw,17.5px);
  line-height:1.5;letter-spacing:.04em;margin-bottom:clamp(8px,1.1vh,14px);}
.th p{font-family:var(--cn);font-weight:300;font-size:clamp(10.5px,.86vw,13px);
  line-height:1.95;color:var(--ink2);}
html[data-lang="en"] .th h4,html[data-lang="en"] .th p,
html[data-lang="en"] .bio-lead{font-family:var(--disp);}
/* 胶带 / 图钉：只有标了 tone 的卡片才有 */
.th-mark{position:absolute;z-index:3;left:50%;top:0;display:none;}
.th-tape .th-mark{display:block;width:clamp(34px,3.6vw,54px);height:clamp(12px,1.2vw,17px);
  background:rgba(228,214,188,.78);border:1px solid rgba(111,82,48,.1);mix-blend-mode:multiply;
  transform:translate(-50%,-52%) rotate(-4deg);}
.th-pin .th-mark{display:block;left:clamp(18px,1.9vw,28px);width:clamp(12px,1.25vw,17px);
  height:clamp(12px,1.25vw,17px);border-radius:50%;box-shadow:0 3px 7px rgba(40,37,32,.3);
  background:radial-gradient(circle at 34% 30%,#946f42,#5d4320 62%,#46320f);
  transform:translate(-50%,-42%);}
.sec-me .tb-deco-clip{left:1.4%;top:12%;}.sec-me .tb-deco-coffee{right:3.6%;bottom:2%;}
.sec-me .tb-deco-star{right:6%;top:9%;width:clamp(15px,1.5vw,22px);--r:12deg;--d:7.2s;}
.sec-me .tb-deco-pencil{left:2%;top:46%;}

/* ---------- Toolbox 内页：一张摊开的工作台 ----------
   贴纸都是 assets/illu/sticker/*.svg，独立文件，随时可换。
   想挪贴纸只改 .tb-deco-* 的 left/top/--r 三个值。 */

/* 标题旁的小贴纸 */
.tb-head-tx{position:relative;}
.tb-head-ic{position:absolute;left:calc(100% + clamp(14px,1.6vw,26px));bottom:2px;
  width:clamp(30px,3vw,44px);opacity:.5;transform:rotate(-8deg);}
.tb-head-star{position:absolute;left:calc(100% + clamp(52px,5.4vw,80px));bottom:clamp(28px,3vw,44px);
  width:clamp(13px,1.3vw,19px);opacity:.42;transform:rotate(12deg);}

.tb-label{display:flex;align-items:center;gap:12px;font-size:clamp(9.5px,.78vw,11.5px);
  letter-spacing:.3em;text-transform:uppercase;color:var(--ink3);
  margin-bottom:clamp(11px,1.5vh,18px);}
.tb-label::after{content:"";flex:1;height:1px;
  background:repeating-linear-gradient(to right,var(--line) 0 4px,transparent 4px 9px);}
html[data-lang="zh"] .tb-label{font-family:var(--cn);letter-spacing:.16em;}
.tb-label-mt{margin-top:clamp(24px,3.8vh,50px);}

.tb-board{display:grid;grid-template-columns:minmax(0,1.62fr) minmax(0,.76fr);
  gap:clamp(26px,3.8vw,70px);align-items:start;margin-top:clamp(16px,2.8vh,38px);
  position:relative;z-index:4;}

/* 软件：贴在板子上的小卡片；.tool-w 管进场，.tool 管歪斜 */
.tb-tools{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(12px,1.5vw,24px);}
.tool-w{position:relative;}
.tool{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:0 10px;
  align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:3px;
  padding:clamp(12px,1.25vw,17px) clamp(12px,1.2vw,16px) clamp(11px,1.15vw,15px);
  transform:rotate(var(--tilt,0deg));box-shadow:0 8px 18px rgba(40,37,32,.07);
  transition:transform .45s var(--ease),box-shadow .45s var(--ease);}
.tool.is-focus{background:linear-gradient(168deg,rgba(228,214,188,.5),rgba(228,214,188,.24));
  border-color:rgba(111,82,48,.24);}.tool-tx{min-width:0;}
.tool::after{content:"";position:absolute;right:0;bottom:0;width:15px;height:15px;
  background:linear-gradient(135deg,rgba(216,210,198,0) 49%,rgba(216,210,198,.62) 50%);}
.tool-w:hover .tool,.tool-w:focus-within .tool{
  transform:rotate(0deg) translateY(-5px);box-shadow:0 17px 30px rgba(40,37,32,.14);}
.tool-ic{width:clamp(20px,1.95vw,27px);height:auto;opacity:.82;
  transition:opacity .45s var(--ease);}
.tool-w:hover .tool-ic{opacity:1;}
.tool b{display:block;font-weight:400;font-size:clamp(10.5px,.92vw,13.5px);letter-spacing:.045em;}
.tool s{display:block;text-decoration:none;font-family:var(--cn);font-weight:300;
  font-size:clamp(9.5px,.75vw,11.5px);color:var(--ink3);margin-top:4px;letter-spacing:.03em;}
.tool .bar{grid-column:1/-1;position:relative;height:1.5px;margin-top:clamp(9px,1.15vw,14px);
  background:repeating-linear-gradient(to right,var(--line) 0 3px,transparent 3px 6px);}
.tool .bar i{position:absolute;left:0;top:-.5px;height:2.5px;width:0;border-radius:2px;
  background:var(--acc);transition:width 1.2s var(--ease);}
.tool .bar i::after{content:"";position:absolute;right:-3px;top:-2.2px;width:7px;height:7px;
  border-radius:50%;background:var(--acc);}
/* 只有几张卡贴胶带，太多就腻了 */
.tool-tape{position:absolute;left:50%;top:0;z-index:3;width:clamp(26px,2.9vw,42px);
  height:clamp(10px,1.05vw,15px);background:rgba(228,214,188,.78);
  border:1px solid rgba(111,82,48,.1);mix-blend-mode:multiply;display:none;
  transform:translate(-50%,-52%) rotate(var(--tapeR,-4deg));}
.tool-w:nth-child(5n+1) .tool-tape,.tool-w:nth-child(7n+3) .tool-tape{display:block;}
.tool-w:nth-child(5n+1) .tool{--tilt:-1.7deg;}.tool-w:nth-child(5n+2) .tool{--tilt:1.3deg;}
.tool-w:nth-child(5n+3) .tool{--tilt:-.6deg;}.tool-w:nth-child(5n+4) .tool{--tilt:1.9deg;}
.tool-w:nth-child(5n) .tool{--tilt:-2.1deg;}.tool-w:nth-child(7n+3) .tool-tape{--tapeR:6deg;}

.sec-toolbox .chips{gap:clamp(7px,.85vw,11px);margin-top:0;}
.sec-toolbox .chips b{position:relative;background:var(--paper);
  border:1px solid rgba(111,82,48,.22);border-radius:999px;padding:.55em 1.1em;
  transform:rotate(var(--tilt,0deg));box-shadow:0 4px 10px rgba(40,37,32,.06);
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),
    color var(--dur-fast),border-color var(--dur-fast);}
.sec-toolbox .chips b:nth-child(3n+1){--tilt:-1.9deg;background:rgba(228,214,188,.44);}
.sec-toolbox .chips b:nth-child(3n+2){--tilt:1.6deg;}
.sec-toolbox .chips b:nth-child(3n){--tilt:-.7deg;background:rgba(228,214,188,.22);}
.sec-toolbox .chips b:hover{transform:rotate(0deg) translateY(-3px) scale(1.045);
  box-shadow:0 11px 19px rgba(40,37,32,.13);border-color:var(--acc);color:var(--acc);}

.tb-foot{display:flex;align-items:baseline;gap:clamp(10px,1.2vw,18px);flex-wrap:wrap;
  margin-top:clamp(20px,3.2vh,42px);padding-top:clamp(13px,1.8vh,24px);
  border-top:1px dashed var(--line);font-family:var(--cn);font-weight:300;
  font-size:clamp(10.5px,.83vw,12.5px);color:var(--ink2);letter-spacing:.04em;}
.tb-foot-k{font-size:clamp(9px,.72vw,11px);letter-spacing:.26em;text-transform:uppercase;
  color:var(--ink3);}
html[data-lang="zh"] .tb-foot-k{letter-spacing:.14em;}

.tb-col-side{padding-top:clamp(12px,1.6vh,24px);}
.tb-memo{position:relative;background:var(--paper);border:1px solid var(--line);
  padding:clamp(19px,2vw,28px) clamp(18px,1.9vw,26px) clamp(30px,3vw,42px);
  transform:rotate(-1.4deg);box-shadow:0 12px 26px rgba(40,37,32,.08);
  margin-right:clamp(16px,3.8vw,76px);}
.tb-memo .lead{max-width:30ch;}
.tb-memo-ic{position:absolute;right:clamp(13px,1.5vw,21px);bottom:clamp(9px,1.1vw,15px);
  width:clamp(22px,2.3vw,33px);opacity:.42;transform:rotate(9deg);}
.tb-tape{position:absolute;left:50%;top:0;width:clamp(54px,6vw,92px);
  height:clamp(15px,1.5vw,22px);background:rgba(228,214,188,.78);
  border:1px solid rgba(111,82,48,.1);mix-blend-mode:multiply;
  box-shadow:0 2px 6px rgba(40,37,32,.07);
  transform:translate(-50%,-52%) rotate(2.4deg);}
.tb-label-focus{margin-top:clamp(20px,3vh,36px);}.tb-focus{display:grid;gap:clamp(9px,1.2vh,15px);}
.fc{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);
  gap:clamp(11px,1.2vw,17px);align-items:center;background:var(--paper);
  border:1px solid rgba(111,82,48,.2);border-left:3px solid var(--acc);
  padding:clamp(12px,1.3vw,17px) clamp(14px,1.5vw,20px);
  box-shadow:0 9px 20px rgba(40,37,32,.07);transform:rotate(var(--tilt,0deg));
  transition:transform .4s var(--ease),box-shadow .4s var(--ease);}
.fc:nth-child(1){--tilt:-1.1deg;}.fc:nth-child(2){--tilt:.9deg;margin-left:clamp(6px,1.2vw,20px);}
.fc:nth-child(3){--tilt:-.6deg;}.fc:hover{transform:rotate(0deg) translateY(-4px);box-shadow:0 16px 28px rgba(40,37,32,.13);}
.fc-ic{width:clamp(20px,2vw,28px);height:auto;opacity:.8;}
.fc h4{font-family:var(--cn);font-weight:400;font-size:clamp(11.5px,.95vw,14px);
  letter-spacing:.05em;margin-bottom:5px;}
.fc p{font-family:var(--cn);font-weight:300;font-size:clamp(10px,.79vw,12px);
  line-height:1.7;color:var(--ink2);}
html[data-lang="en"] .fc h4,html[data-lang="en"] .fc p{font-family:var(--disp);}

html[data-lang="en"] .tool s,html[data-lang="en"] .tb-foot{font-family:var(--disp);}

/* 飘在纸面上的装饰贴纸 */
.tb-decos{position:absolute;inset:0;z-index:1;pointer-events:none;}.tb-deco{position:absolute;width:clamp(26px,2.7vw,42px);opacity:.3;
  transform:rotate(var(--r,0deg));animation:tbDrift var(--d,7s) ease-in-out var(--dl,0s) infinite;}
.tb-deco-pencil{left:2.2%;top:35%;--r:-18deg;--d:7.4s;width:clamp(34px,3.5vw,54px);}
.tb-deco-scissors{left:66%;bottom:7%;--r:16deg;--d:8.6s;--dl:-1.9s;opacity:.24;}
.tb-deco-coffee{right:4.5%;bottom:7%;--r:-9deg;--d:9.2s;--dl:-3.4s;opacity:.26;}
.tb-deco-arrow{left:64.5%;top:55%;--r:34deg;--d:8s;--dl:-1.1s;opacity:.22;
  width:clamp(28px,2.9vw,44px);}
.tb-deco-clip{left:.8%;bottom:34%;--r:-26deg;--d:7.8s;--dl:-2.6s;opacity:.22;}
@keyframes tbDrift{
  0%,100%{transform:rotate(var(--r,0deg)) translateY(0);}
  50%{transform:rotate(calc(var(--r,0deg) + 3deg)) translateY(-8px);}
}
/* 屏幕高时放开一点，别让内容全挤在上半屏 */
@media(min-height:950px){
  .sec-toolbox .tb-tools{gap:clamp(18px,2vw,30px);}
  .sec-toolbox .tool{padding:20px 18px 18px;}
  .sec-toolbox .tb-label-mt{margin-top:clamp(36px,4.4vh,60px);}
  .sec-toolbox .tb-foot{margin-top:clamp(30px,3.6vh,50px);padding-top:clamp(18px,2vh,28px);}
  .sec-toolbox .tb-memo{padding:26px 26px 46px;}
  .sec-toolbox .tb-focus{gap:clamp(14px,1.8vh,22px);}
}
/* 笔记本屏幕偏矮时收紧一点，保证整页一屏放得下 */
@media(max-height:880px){
  .sec-me{padding-top:clamp(52px,5.8vh,68px);}
  .sec-me .sub-head{margin-top:0;}
  .sec-me .rule{margin:3px 0;}
  .sec-me .me-nav{margin-bottom:8px;}
  .sec-me .things{gap:12px;margin-top:0;}
  .sec-me .th{padding:13px 15px 14px;}
  .sec-me .bio-lead{margin-bottom:8px;}
  .sec-me .me-seg + .me-seg{margin-top:clamp(24px,4.5vh,40px);}
  .sec-me .ph-rail{margin-top:2px;padding-top:8px;padding-bottom:6px;}
  .sec-toolbox{padding-top:clamp(52px,5.8vh,68px);}
  .sec-toolbox .sub-head{margin-top:0;}
  .sec-toolbox .rule{margin:3px 0;}
  .sec-dog{padding-top:clamp(52px,5.8vh,68px);}
  .sec-dog .sub-head{margin-top:0;}
  .sec-dog .rule{margin:3px 0;}
  .sec-dog .dog-grid{gap:18px;}
  .sec-dog .dog-sub{margin-bottom:6px;}
  .sec-dog .dg-lb{margin:8px 0 5px;}
  .sec-dog .dog-q{margin-top:8px;}
  .sec-toolbox .tb-board{margin-top:0;gap:clamp(24px,3.2vw,52px);}
  .sec-toolbox .tb-tools{gap:clamp(9px,1.15vw,16px);}
  .sec-toolbox .tool{padding:11px 12px;}
  .sec-toolbox .tool-ic{width:20px;}
  .sec-toolbox .tool .bar{margin-top:10px;}
  .sec-toolbox .tb-label-mt{margin-top:20px;}
  .sec-toolbox .tb-foot{margin-top:16px;padding-top:11px;}
  .sec-toolbox .tb-memo{padding:16px 18px 26px;}
  .sec-toolbox .fc{padding:10px 14px;}
  .sec-toolbox .tb-focus{gap:8px;}
}

/* ---------- 内页通用 + 照片横条 ---------- */
body.sub-open{overscroll-behavior-y:none;}.sec-hidden{display:none;}
@keyframes photosContentIn{
  from{opacity:0;transform:translateY(10px);}
  to{opacity:1;transform:none;}
}
@keyframes subFlipReveal{
  0%{opacity:0;transform:translateY(20px) scale(.994);}
  100%{opacity:1;transform:none;}
}
/* 横条：整屏宽，左右各留半屏内边距，好让第一张和最后一张也能滑到正中 */
.ph-rail{--ph-w:clamp(178px,17vw,272px);
  display:flex;gap:clamp(14px,1.7vw,28px);overflow-x:auto;cursor:grab;
  width:100vw;margin-left:calc(50% - 50vw);margin-top:clamp(10px,1.8vh,24px);
  padding:clamp(18px,2.6vh,36px) calc(50vw - var(--ph-w) / 2) clamp(14px,2vh,26px);
  scrollbar-width:none;overscroll-behavior-x:contain;scroll-snap-type:x proximity;}
.ph-rail::-webkit-scrollbar{display:none;}
.ph-rail.grabbing{cursor:grabbing;}
.ph{flex:0 0 var(--ph-w);position:relative;scroll-snap-align:center;margin:0;
  transform:scale(calc(1 + var(--k,0) * .17)) rotate(calc(var(--tilt,0deg) * (1 - var(--k,0))));
  filter:saturate(calc(.86 + var(--k,0) * .18));
  transition:filter .3s var(--ease);will-change:transform;}
.ph:nth-child(odd){--tilt:-2.2deg;}
.ph:nth-child(even){--tilt:1.9deg;}
.ph::before{content:"";position:absolute;left:8%;right:8%;bottom:2px;height:16px;z-index:-1;
  background:rgba(40,37,32,.2);filter:blur(13px);opacity:calc(.3 + var(--k,0) * .7);}
.ph-im{position:relative;background:var(--paper);border-radius:2px;
  padding:clamp(7px,.72vw,11px);border:1px solid rgba(216,210,198,.85);
  box-shadow:0 14px 30px rgba(40,37,32,.12);}
.ph-im img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;
  background:var(--wash);filter:contrast(.99);}
.ph-tape{position:absolute;left:50%;top:0;z-index:4;width:clamp(36px,3.9vw,58px);
  height:clamp(11px,1.15vw,16px);background:rgba(228,214,188,.76);
  border:1px solid rgba(111,82,48,.09);mix-blend-mode:multiply;
  box-shadow:0 2px 5px rgba(40,37,32,.07);transform:translate(-50%,-52%) rotate(-3deg);}
.ph:nth-child(3n) .ph-tape{left:26%;transform:translate(-50%,-52%) rotate(6deg);}
.ph-no{position:absolute;left:clamp(11px,1.05vw,16px);top:clamp(11px,1.05vw,16px);z-index:5;
  font-size:10px;letter-spacing:.18em;color:var(--ink2);background:rgba(255,255,255,.85);
  padding:3px 6px;border:1px solid rgba(216,210,198,.8);}
.ph-cap{font-family:var(--cn);font-weight:300;font-size:clamp(10px,.8vw,12px);
  line-height:1.7;color:var(--ink2);margin-top:10px;text-align:center;
  opacity:calc(.45 + var(--k,0) * .55);}
html[data-lang="en"] .ph-cap{font-family:var(--disp);}
.photos-empty{border:1px dashed var(--line);border-radius:4px;flex:0 0 min(560px,86vw);
  padding:clamp(30px,4vw,60px) clamp(20px,3vw,40px);text-align:center;}
.photos-empty p{font-family:var(--cn);font-weight:300;font-size:clamp(11px,.9vw,13px);
  line-height:1.9;color:var(--ink3);max-width:42ch;margin:0 auto;}
html[data-lang="en"] .photos-empty p{font-family:var(--disp);}

/* ---------- 经历 · 头像散落空白处 ---------- */
#sec-exp{position:relative;overflow:visible;}
.exp-avatars{
  position:absolute;inset:0;z-index:3;pointer-events:none;overflow:visible;}
.exp-av{position:absolute;display:block;line-height:0;will-change:transform;}
.exp-av img{
  display:block;width:100%;height:auto;
  mix-blend-mode:screen;filter:drop-shadow(0 8px 18px rgba(40,37,32,.12));}
/* 人物：右上，标题行右侧大空白 */
.exp-av-person{
  width:clamp(104px,12vw,158px);
  top:clamp(68px,9.5vh,112px);right:clamp(20px,4.5vw,72px);
  transform:rotate(-6deg);}
/* 可卡布：中右偏内，标题与时间轴之间的空白 */
.exp-av-cockapoo{
  width:clamp(88px,10vw,136px);
  top:clamp(148px,20vh,228px);right:clamp(28%,32vw,42%);
  transform:rotate(9deg);}
/* 边牧：紧挨「项目与经历」标题右侧 */
.exp-head-main{
  display:flex;align-items:flex-end;gap:clamp(10px,1.8vw,26px);flex:1;min-width:0;}
.exp-head-copy{min-width:0;}
.exp-av-collie{
  position:relative;width:clamp(88px,10.5vw,136px);flex-shrink:0;
  margin-bottom:clamp(2px,.4vh,8px);transform:rotate(-11deg);}
@keyframes exp-float-collie{
  0%,100%{transform:rotate(-11deg) translate(0,0);}
  28%{transform:rotate(-7deg) translate(9px,-18px);}
  58%{transform:rotate(-14deg) translate(-7px,-11px);}
  82%{transform:rotate(-9deg) translate(5px,-22px);}
}
@keyframes exp-float-cockapoo{
  0%,100%{transform:rotate(9deg) translate(0,0);}
  32%{transform:rotate(13deg) translate(-10px,-14px);}
  60%{transform:rotate(5deg) translate(7px,-24px);}
  84%{transform:rotate(11deg) translate(-5px,-8px);}
}
@keyframes exp-float-person{
  0%,100%{transform:rotate(-6deg) translate(0,0);}
  24%{transform:rotate(-2deg) translate(11px,-16px);}
  52%{transform:rotate(-9deg) translate(-8px,-20px);}
  76%{transform:rotate(-4deg) translate(6px,-10px);}
}
#sec-exp.is-active .exp-av-collie{animation:exp-float-collie 6.4s ease-in-out -1.6s infinite;}
#sec-exp.is-active .exp-av-cockapoo{animation:exp-float-cockapoo 4.8s ease-in-out -.9s infinite;}
#sec-exp.is-active .exp-av-person{animation:exp-float-person 7.6s ease-in-out -2.8s infinite;}
.trail{display:flex;overflow-x:auto;cursor:grab;padding:6px var(--pad) 10px;
  margin:0 calc(var(--pad) * -1);scrollbar-width:none;overscroll-behavior-x:contain;}
.trail::-webkit-scrollbar{display:none;}
.trail.grabbing{cursor:grabbing;}
.event{flex:0 0 auto;width:clamp(250px,25vw,368px);padding:16px clamp(18px,2vw,32px) 0 0;
  border-top:1px solid var(--line);position:relative;}
.event::before{content:"";position:absolute;left:0;top:-3.5px;width:6px;height:6px;
  border-radius:50%;background:var(--acc);}
.event .w{font-size:clamp(9.5px,.76vw,11.5px);letter-spacing:.16em;color:var(--acc);margin-bottom:10px;}
.event h4{font-family:var(--cn);font-weight:400;font-size:clamp(12.5px,1.05vw,15.5px);
  line-height:1.55;margin-bottom:6px;}
.event .who{font-family:var(--cn);font-weight:300;font-size:clamp(10px,.8vw,12px);
  color:var(--ink3);margin-bottom:10px;}
.event p{font-family:var(--cn);font-weight:300;font-size:clamp(10.5px,.84vw,12.5px);
  line-height:1.9;color:var(--ink2);}
html[data-lang="en"] .event h4,html[data-lang="en"] .event .who,
html[data-lang="en"] .event p{font-family:var(--disp);}

/* ---------- 教育与荣誉 ---------- */
.edu{padding:clamp(13px,1.6vw,22px) 0;border-top:1px solid var(--line);}
.edu:last-child{border-bottom:1px solid var(--line);}
.edu .yr{font-size:clamp(9.5px,.76vw,11.5px);letter-spacing:.16em;color:var(--ink3);margin-bottom:7px;}
.edu h4{font-family:var(--cn);font-weight:400;font-size:clamp(15px,1.35vw,20px);letter-spacing:.06em;}
.edu .mj{font-family:var(--cn);font-weight:300;font-size:clamp(11px,.9vw,13px);
  color:var(--acc);margin:5px 0 8px;}
.edu .note{font-family:var(--cn);font-weight:300;font-size:clamp(10.5px,.84vw,12.5px);
  line-height:1.85;color:var(--ink2);}
html[data-lang="en"] .edu h4,html[data-lang="en"] .edu .mj,
html[data-lang="en"] .edu .note{font-family:var(--disp);}
.awards{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(16px,2vw,32px);}
.awards div{display:grid;grid-template-columns:auto 1fr;gap:10px;padding:9px 0;
  border-top:1px solid var(--line);font-family:var(--cn);font-weight:300;
  font-size:clamp(10.5px,.84vw,12.5px);color:var(--ink2);}
html[data-lang="en"] .awards div{font-family:var(--disp);}
.awards i{font-style:normal;font-family:var(--disp);font-size:.82em;letter-spacing:.1em;
  color:var(--ink3);padding-top:.3em;}

/* ---------- 联系 ---------- */
.sec-contact .inner{text-align:center;}
.contact{display:flex;justify-content:center;flex-wrap:wrap;margin-top:clamp(22px,3vw,42px);}
.contact a,.contact>span{padding:0 clamp(16px,2.4vw,42px);border-right:1px solid var(--line);
  text-align:left;display:block;}
.contact :last-child{border-right:none;}
.contact .k{display:block;font-size:clamp(9px,.72vw,11px);letter-spacing:.26em;
  color:var(--ink3);margin-bottom:6px;text-transform:uppercase;}
html[data-lang="zh"] .contact .k{font-family:var(--cn);letter-spacing:.12em;}
.contact .v{display:block;font-size:clamp(12px,1.05vw,16px);letter-spacing:.06em;}
.contact a:hover .v{color:var(--acc);}
.sign{margin-top:clamp(26px,3.6vw,52px);font-size:10px;letter-spacing:.24em;color:var(--ink3);}

/* ---------- 首页插画中的两只狗（分层，但不再漫游） ----------
   位置按原画布比例摆放：person 层宽 1404，狗的偏移见 README。
   如果换插画，只需要改这四个百分比。
------------------------------------------------------------ */
/* 三层按原画关系摆放：数值 = 相对人物图层的百分比，换素材只改这三行 */
.illu-dog{position:absolute;height:auto;pointer-events:none;will-change:transform,opacity;}
.illu-dog1{left:47.6%;top:-6%;width:39%;}
.illu-dog2{left:45.65%;top:56.46%;width:122.76%;}

/* ---------- 作品大图 ---------- */
#lightbox{position:fixed;inset:0;z-index:1000;background:rgba(255,255,255,.985);
  display:grid;place-items:center;padding:clamp(52px,7vw,96px);}
#lightbox[hidden]{display:none;}
#lightbox img{max-width:100%;max-height:74vh;object-fit:contain;border:1px solid var(--line);}
.lb-cap{position:absolute;left:var(--pad);right:var(--pad);bottom:clamp(20px,3vh,40px);}
.lb-cap h4{font-family:var(--cn);font-weight:400;font-size:clamp(13px,1.1vw,16px);margin-bottom:6px;}
.lb-cap p{font-family:var(--cn);font-weight:300;font-size:clamp(10.5px,.84vw,12.5px);
  color:var(--ink2);max-width:620px;line-height:1.8;}
.lb-cap .lb-i{font-family:var(--disp);font-size:10px;letter-spacing:.2em;color:var(--ink3);margin-top:8px;}
#lightbox button{position:absolute;color:var(--ink2);transition:color var(--dur-fast);}
#lightbox button:hover{color:var(--acc);}
#lbClose{top:var(--pad);right:var(--pad);font-size:26px;line-height:1;}
#lbPrev{left:calc(var(--pad) * .6);top:50%;transform:translateY(-50%);font-size:32px;}
#lbNext{right:calc(var(--pad) * .6);top:50%;transform:translateY(-50%);font-size:32px;}

/* ---------- 进场 ---------- */
.reveal{opacity:0;transform:translateY(16px);}
.sec.live .reveal{opacity:1;transform:none;
  transition:opacity .9s var(--ease),transform .9s var(--ease);}
.sec.live .reveal:nth-child(2){transition-delay:.08s;}
.sec.live .reveal:nth-child(3){transition-delay:.16s;}

/* ---------- 响应式 ---------- */
@media(max-width:1180px){
  .grid-2{grid-template-columns:1fr;gap:26px;}
  .awards{grid-template-columns:1fr;}
}
@media(max-width:860px){
  .sec{min-height:auto;padding:74px 20px 60px;}
  .exp-av-person{width:clamp(78px,19vw,104px);top:56px;right:12px;}
  .exp-av-cockapoo{width:clamp(68px,17vw,92px);top:128px;right:22%;}
  .exp-av-collie{width:clamp(64px,16vw,88px);margin-bottom:0;}
  .exp-head-main{align-items:center;gap:10px;}
  #sec-exp.is-active .exp-av{animation:none;}
  #idx{display:none;}
  #nav{background:rgba(251,250,246,.96);padding:12px 92px 12px 16px;gap:16px;overflow-x:auto;
    justify-content:flex-start;border-bottom:1px solid var(--line);scrollbar-width:none;}
  #nav::-webkit-scrollbar{display:none;}
  #nav a{padding-bottom:4px;font-size:12px;}
  #lang{top:11px;right:12px;background:rgba(251,250,246,.97);padding:2px 6px;border-radius:4px;}
  .sec-home{min-height:92vh;padding:0;}
  .home-copy{position:static;max-width:none;padding:118px 20px 0 32px;}
  .home-name{white-space:normal;}
  .illu-shift{position:static;width:100%;margin:26px auto 0;transform:none !important;opacity:1 !important;}
  .p2-shift{position:static;width:min(92%,520px);margin:48px auto 24px;transform:none !important;}
  .p2-stage img{opacity:1 !important;transform:none !important;}
  .p2-person{transform:rotate(-30deg) !important;}
  .p2-leash-brown{transform:rotate(55.24deg) scale(1.006) !important;}
  .p2-leash-blue{transform:rotate(12.26deg) scale(.856) !important;}
  .sec-about.is-active .p2-collie,
  .sec-about.is-active .p2-cock,
  .sec-about.is-active .p2-person,
  .sec-about.is-active .p2-toolbox,
  .sec-about.is-active .p2-leash-brown,
  .sec-about.is-active .p2-leash-blue{animation:none;}
  .sec-boxes.is-active .bx{animation:none;--fx:0px;--fy:0px;--fr:0deg;}
  .sec-boxes.is-active .bx-dog-sniff{animation:none;--fx:0px;--fy:0px;--fr:0deg;}
  .sec-boxes.is-active .bx-dog-jump{animation:none;--fx:0px;--fy:0px;--fr:0deg;}
  .sec-boxes.is-active .bx-carpet{animation:none;--fx:0px;--fy:0px;--fr:0deg;}
  .sec-wk-ns2.live .ns2-card{animation:none;}
  .p2-bg{display:none;}
  .p2-ground{display:none;}
  .sec-boxes{padding-top:80px;}
  .bx-wrap{width:min(92%,420px);margin:20px auto;}
  .bx-stage{position:static;width:100%;height:auto;margin:0;
    display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  .bx-carpet{position:static;grid-column:1/-1;width:100%;max-width:none;
    margin:clamp(8px,1.5vh,14px) auto 0;order:99;transform:none !important;}
  .bx-dog-sniff,.bx-dog-jump{display:none;}
  .bx-decos{display:none;}
  .wk-grid{grid-template-columns:1fr 1fr;gap:12px;}
  .wk-hero{height:150px;}
  .sec-wk{padding-top:80px;}
  .sec-wk-pv.sec-sub{padding-top:72px;}
  .pj-stage{grid-template-columns:1fr 1fr;padding:clamp(8px,1.5vh,16px) clamp(12px,5vw,28px);}
  .pj-cd-nushu,.pj-cd-nanchang{width:clamp(300px,min(62vw,60vh),540px);}
  .pv{--pvW:min(62vw,270px);--pvCardW:22vw;--pvMid:36%;}
  .pv-expand,.pr-expand,.od-expand{grid-template-columns:1fr;gap:18px;padding:0 16px 16px;overflow-y:auto;
    align-content:start;}
  .pv-expand-left img,.pr-expand-left img,.od-expand-left img{max-height:52vh;}
  .pv-expand-copy,.pr-expand-copy,.od-expand-copy{padding:22px 20px 20px;}
  .pv-nav{background:rgba(255,255,255,.85);}
  .pv-meta{width:86vw;}
  .pv-hint{display:none;}
  .pr-hint,.od-hint{display:none;}
  .uic-desc{max-width:82vw;}
  .pr-nav{background:rgba(255,255,255,.85);}
  .pr-meta{width:86vw;bottom:60px;}
  .pr-pages{bottom:30px;gap:12px;}
  .od-foot{padding-bottom:6px;}
  .od-meta{width:86vw;}
  .bx{position:static !important;width:auto !important;pointer-events:auto;}
  .bx-hit{display:none;}
  .bx:last-child{grid-column:1/-1;width:60% !important;margin:0 auto;}
  .p2-toolbox{left:auto;right:0;top:104%;width:34%;transform:rotate(6deg) !important;}
  .p2-tag{display:none;}
  .p2-shift{margin-bottom:120px;}
  .scroll-cue{display:none;}
  .contact{flex-direction:column;gap:16px;align-items:flex-start;}
  .contact a,.contact>span{border-right:none;padding:0;}
  .sec-contact .inner{text-align:left;}
  .sub-head{flex-direction:column;align-items:flex-start;gap:18px;}
  .sec-sub{padding-top:88px;}
  .sec-wk-ncd.sec-sub{padding-top:68px;}
  .sec-sub.sec-wk-ns2,.sec-sub.sec-wk-ns2b,.sec-sub.sec-wk-ns2c,
  .sec-sub.sec-wk-ns3,.sec-sub.sec-wk-ns4,.sec-sub.sec-wk-ns5{
    padding-top:clamp(58px,calc(3.5vh + 8px),68px);}
  .sec-wk-nushu-fs .ns-page-inner{padding-top:clamp(58px,calc(3.5vh + 8px),68px);}
  .sec-me{padding-top:72px;}
  .sec-toolbox{padding-top:72px;}
  .sec-dog{padding-top:72px;}
  .sec-dog .dog-grid{gap:20px;}
  .ph-rail{--ph-w:min(62vw,240px);padding-top:22px;padding-bottom:16px;}
  .ph{--tilt:0deg;}
  .tb-board{grid-template-columns:1fr;gap:26px;}
  .dog-grid{grid-template-columns:1fr;gap:26px;}
  .dog-fig{transform:none;max-width:420px;}
  .pjd{grid-template-columns:1fr;gap:26px;}
  .pjd-fig{transform:none;max-width:420px;}
  .me-nav{flex-wrap:wrap;}
  .things{grid-template-columns:1fr;gap:14px;}
  .th-w{grid-column:1/-1 !important;}
  .th{--tilt:0deg !important;}
  .tb-decos,.tb-head-ic,.tb-head-star{display:none;}
  .tb-tools{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
  .tool{--tilt:0deg !important;}
  .tb-col-side{padding-top:0;}
  .tb-memo,.fc{transform:none;}
  .fc:nth-child(2){margin-left:0;}
  .sec-toolbox .chips b{--tilt:0deg;}
  .reveal{opacity:1;transform:none;}
}
@media(max-height:700px){
  .sec-toolbox .sub-head{margin-top:0;}
  .sec-toolbox .rule{margin:3px 0;}
  .sec-toolbox .tb-board{margin-top:0;gap:clamp(20px,2.6vw,40px);}
  .sec-toolbox .tb-tools{gap:8px;}
  .sec-toolbox .tool{padding:8px 10px;}
  .sec-toolbox .tool .bar{margin-top:7px;}
  .sec-toolbox .tb-label-mt{margin-top:13px;}
  .sec-toolbox .tb-foot{margin-top:11px;padding-top:8px;}
  .sec-toolbox .tb-memo{padding:12px 14px 20px;}
  .sec-toolbox .fc{padding:8px 12px;}
  .sec-toolbox .tb-focus{gap:6px;}
  .sec-toolbox .tb-label-focus{margin-top:12px;}
}
/* ==========================================================================
   落地项目 · 那年南昌详情页（复古电视机播放拼贴动画 + 现场纪实）
   ========================================================================== */
.sec-wk-ncd.sec-sub{padding-top:clamp(72px,calc(10vh - 20px),108px);}
.sec-wk-ncd .head-row{margin-bottom:clamp(6px,.8vw,12px);}
.ncd{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);
  gap:clamp(26px,3.6vw,60px);align-items:start;margin-top:clamp(6px,1vh,14px);}
.ncd-left .pjd-meta{margin-bottom:clamp(10px,1.4vh,16px);}
.ncd-p{font-family:var(--cn);font-weight:300;font-size:clamp(12px,.98vw,15px);
  line-height:2;color:var(--ink2);margin:0 0 clamp(10px,1.5vh,16px);}
html[data-lang="en"] .ncd-p{font-family:var(--disp);line-height:1.8;}
.ncd-facts{margin-top:clamp(6px,1vh,12px);}
.ncd-tags{margin-top:clamp(14px,2vh,22px);}
.ncd-right{display:flex;flex-direction:column;gap:clamp(10px,1.5vh,18px);min-width:0;}

/* ----- 复古电视机 ----- */
.nc-tvwrap{margin:0;display:flex;flex-direction:column;align-items:center;}
.nc-tv{position:relative;width:min(100%,640px);
  display:grid;grid-template-columns:minmax(0,1fr) clamp(46px,4.6vw,64px);
  grid-template-rows:auto auto;column-gap:clamp(8px,.9vw,12px);row-gap:clamp(6px,.7vw,10px);
  background:linear-gradient(160deg,#7a563a 0%,#5f4128 46%,#4a3120 100%);
  border-radius:14px;padding:clamp(12px,1.4vw,20px);
  border:1px solid rgba(0,0,0,.28);
  box-shadow:inset 0 1px 0 rgba(255,235,205,.28),inset 0 -2px 6px rgba(0,0,0,.3),
    0 18px 38px rgba(40,37,32,.28);}
.nc-screen{position:relative;grid-column:1;grid-row:1;overflow:hidden;cursor:pointer;
  background:#0d0c0a;border-radius:10px / 14px;
  border:2px solid #241a10;
  box-shadow:inset 0 0 0 3px rgba(0,0,0,.55),inset 0 0 26px rgba(0,0,0,.75);}
.nc-screen video{display:block;width:100%;aspect-ratio:960/544;object-fit:cover;
  background:#0d0c0a;}
.nc-gloss{position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  background:
    radial-gradient(120% 90% at 18% 6%,rgba(255,255,255,.16) 0%,rgba(255,255,255,.05) 26%,transparent 48%),
    radial-gradient(140% 120% at 50% 50%,transparent 62%,rgba(0,0,0,.28) 100%);}
.nc-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:clamp(52px,5.4vw,72px);height:clamp(52px,5.4vw,72px);border-radius:50%;
  border:1px solid rgba(255,255,255,.5);background:rgba(20,16,12,.52);
  backdrop-filter:blur(3px);cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:transform var(--dur-fast) ease,background var(--dur-fast) ease;}
.nc-play svg{width:44%;height:44%;fill:#fff;margin-left:6%;}
.nc-play:hover{background:rgba(111,82,48,.72);transform:translate(-50%,-50%) scale(1.06);}
.nc-screen.is-playing .nc-play{display:none;}
/* 屏幕右下角：静音 / 全屏 */
.nc-screen-tools{
  position:absolute;right:clamp(8px,.85vw,14px);bottom:clamp(8px,.85vw,14px);z-index:4;
  display:flex;align-items:center;gap:clamp(5px,.55vw,8px);pointer-events:auto;}
.nc-tool{
  width:clamp(28px,2.6vw,34px);height:clamp(28px,2.6vw,34px);padding:0;
  display:flex;align-items:center;justify-content:center;border-radius:6px;
  border:1px solid rgba(255,255,255,.32);background:rgba(12,10,8,.52);
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);cursor:pointer;
  transition:background var(--dur-fast),border-color var(--dur-fast),transform var(--dur-fast);}
.nc-tool:hover{background:rgba(111,82,48,.72);border-color:rgba(255,255,255,.55);
  transform:scale(1.05);}
.nc-tool svg{width:58%;height:58%;fill:none;stroke:#fff;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round;pointer-events:none;}
.nc-tool .nc-ico-muted,.nc-tool .nc-ico-fs-exit{display:none;}
.nc-tool.is-muted .nc-ico-vol{display:none;}
.nc-tool.is-muted .nc-ico-muted{display:block;}
.nc-tool.is-fs .nc-ico-fs{display:none;}
.nc-tool.is-fs .nc-ico-fs-exit{display:block;}
.nc-screen:fullscreen,.nc-screen:-webkit-full-screen{
  width:100vw;height:100vh;border-radius:0;display:flex;align-items:center;justify-content:center;
  background:#0d0c0a;}
.nc-screen:fullscreen video,.nc-screen:-webkit-full-screen video{
  width:100%;height:100%;max-height:100%;aspect-ratio:auto;object-fit:contain;}
.nc-screen:fullscreen .nc-screen-tools,.nc-screen:-webkit-full-screen .nc-screen-tools{
  right:clamp(16px,2vw,28px);bottom:clamp(16px,2vh,28px);}
@keyframes ncOn{
  0%{filter:brightness(2.6) saturate(0) contrast(1.4);transform:scaleY(.05);}
  40%{filter:brightness(1.7) saturate(.4);transform:scaleY(1.02);}
  70%{filter:brightness(.85) saturate(.9);transform:scaleY(1);}
  100%{filter:brightness(1) saturate(1);}
}
.nc-screen.is-on video{animation:ncOn .5s ease-out;}

/* 右侧控制面板：旋钮 / 散热孔 / 铭牌 / 指示灯 */
.nc-panel{grid-column:2;grid-row:1;display:flex;flex-direction:column;align-items:center;
  gap:clamp(8px,1vh,12px);padding:clamp(6px,.8vw,10px) 0;
  border-radius:8px;background:linear-gradient(180deg,rgba(0,0,0,.16),rgba(0,0,0,.3));
  box-shadow:inset 0 1px 3px rgba(0,0,0,.4),inset 0 -1px 0 rgba(255,235,205,.12);}
.nc-knob{width:clamp(22px,2.3vw,32px);height:clamp(22px,2.3vw,32px);border-radius:50%;
  background:radial-gradient(circle at 34% 30%,#d9c6a8 0%,#9c8563 42%,#5c4426 100%);
  border:1px solid rgba(0,0,0,.45);position:relative;
  box-shadow:0 2px 4px rgba(0,0,0,.4),inset 0 1px 1px rgba(255,255,255,.35);}
.nc-knob::before{content:"";position:absolute;left:50%;top:8%;width:2px;height:34%;
  transform:translateX(-50%);background:#2c2013;border-radius:2px;}
.nc-knob-sm{width:clamp(16px,1.7vw,24px);height:clamp(16px,1.7vw,24px);}
.nc-knob-sm::before{transform:translateX(-50%) rotate(0deg);}
.nc-vents{width:62%;height:clamp(26px,3.4vh,44px);margin-top:auto;
  background:repeating-linear-gradient(180deg,rgba(0,0,0,.5) 0 2px,transparent 2px 6px);
  border-radius:2px;opacity:.75;}
.nc-brand{font-family:var(--disp);font-size:clamp(6px,.5vw,8px);letter-spacing:.16em;
  color:rgba(255,235,205,.55);white-space:nowrap;}
.nc-led{width:7px;height:7px;border-radius:50%;background:#8a2f22;
  box-shadow:0 0 4px rgba(138,47,34,.5);transition:background .3s ease,box-shadow .3s ease;}
.nc-tv.is-live .nc-led{background:#5FE39A;box-shadow:0 0 8px rgba(95,227,154,.9);}

/* 屏幕下方：进度条 + 时间 */
.nc-deck{grid-column:1 / -1;grid-row:2;display:flex;align-items:center;
  gap:clamp(10px,1.2vw,16px);padding:0 2px;}
.nc-seek{position:relative;flex:1;height:14px;cursor:pointer;display:flex;align-items:center;}
.nc-seek::before{content:"";position:absolute;left:0;right:0;top:50%;height:4px;
  transform:translateY(-50%);border-radius:2px;background:rgba(0,0,0,.42);
  box-shadow:inset 0 1px 2px rgba(0,0,0,.5);}
.nc-seek-fill{position:absolute;left:0;top:50%;height:4px;width:0;
  transform:translateY(-50%);border-radius:2px;
  background:linear-gradient(90deg,#c9a877,#e8d5b0);
  box-shadow:0 0 6px rgba(232,213,176,.35);transition:width .25s linear;}
.nc-time{font-family:var(--disp);font-size:clamp(9px,.72vw,11px);letter-spacing:.1em;
  color:rgba(255,235,205,.72);font-variant-numeric:tabular-nums;white-space:nowrap;}

/* 电视脚 + 说明 */
.nc-legs{display:flex;justify-content:space-between;width:min(78%,470px);
  margin-top:-1px;}
.nc-legs i{width:clamp(26px,2.6vw,36px);height:clamp(10px,1.1vw,15px);
  background:linear-gradient(180deg,#4a3120,#2f1e11);
  border-radius:0 0 5px 5px;box-shadow:0 3px 6px rgba(40,37,32,.3);}
.nc-legs i:first-child{transform:skewX(7deg);}
.nc-legs i:last-child{transform:skewX(-7deg);}
.nc-cap{margin-top:clamp(8px,1vh,12px);text-align:center;}

/* ----- 现场纪实 ----- */
.nc-site-k{font-family:var(--cn);font-size:clamp(10px,.8vw,12px);letter-spacing:.24em;
  color:var(--ink3);margin:0 0 clamp(7px,.9vh,11px);}
html[data-lang="en"] .nc-site-k{font-family:var(--disp);letter-spacing:.18em;text-transform:uppercase;}
.nc-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(8px,1vw,16px);}
.nc-strip img{width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--line);
  border-radius:2px;cursor:zoom-in;background:var(--paper);padding:3px;
  transition:transform var(--dur-fast) ease,border-color var(--dur-fast) ease,box-shadow var(--dur-fast) ease;}
.nc-strip img:hover{border-color:var(--acc);transform:translateY(-2px);
  box-shadow:0 6px 16px rgba(40,37,32,.14);}

@media(max-width:900px){
  .ncd{grid-template-columns:1fr;gap:26px;}
  .nc-tv{width:100%;}
  .nc-strip{grid-template-columns:repeat(2,1fr);}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none !important;}
  .dog{transition:none !important;}
}
