/* ===== 原型实验室 /lab/（11-05，74 号文档）。只在 /lab/ 页面加载；回退时整个文件删掉。 =====
   彩灯展厅和机模展厅都是夜色空间；环境光随段落换色（只换暗处的环境光，文字始终在深色底上）。 */
@property --amb{syntax:'<color>';inherits:true;initial-value:#1a1408}
.lab{position:relative;isolation:isolate;background:var(--night);color:var(--night-text);--amb:#1a1408;transition:--amb 1.6s var(--ease)}
.lab::before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(70% 55% at 50% 38%,color-mix(in srgb,var(--amb) 46%,transparent),transparent 78%)}
.lab h2,.lab h3{color:#fff}
.lab .sec,.lab .cta{position:relative}
.lab-note{margin:0;padding:14px var(--gut);font-size:14px;color:var(--night-dim);background:var(--night)}
.lab-src{display:inline-block;margin-left:6px;padding:1px 8px;border:1px solid var(--night-line);font-size:13px;color:var(--night-dim);white-space:nowrap}
.lab-cap{margin-top:12px;font-size:14px;color:var(--night-dim)}
.lab-sh{max-width:44em;margin-bottom:clamp(32px,5vh,56px)}
.lab-sh h2{font:900 clamp(32px,3.4vw,54px)/1.2 var(--poster)}
.lab-sh p{margin-top:14px;font-size:17px;line-height:1.8}
/* 首屏场景位置（沿用 space.css 的 .sp-hero 机制） */
.sp-lab-l{--sp-haze:#24140a}
.sp-lab-l .l-zigong-night{--x:6vw;--y:-20vh;--z:-1400px;width:120vw}
.sp-lab-l .l-lit-phoenix26{--x:30vw;--y:-10vh;--z:-480px;width:20vw}
.sp-lab-l .l-lotus-group{--x:-34vw;--y:22vh;--z:-160px;width:30vw}
.sp-lab-l .l-lit-dragon26{--x:10vw;--y:20vh;--z:160px;width:84vw}
.sp-lab-d{--sp-haze:#0e1622}
.sp-lab-d .l-museum-hall{--x:0vw;--y:-6vh;--z:-1100px;width:150vw}
.sp-lab-d .l-skeleton-long{--x:-30vw;--y:6vh;--z:-480px;width:44vw}
.sp-lab-d .l-trex-red-a{--x:24vw;--y:16vh;--z:120px;width:60vw}
@media (max-width:767px),(orientation:portrait) and (max-width:1100px){
  .sp-lab-l .l-zigong-night{--y:-22vh;width:260vw}
  .sp-lab-l .l-lit-phoenix26{--x:-26vw;--y:-6vh;width:44vw}
  .sp-lab-l .l-lotus-group{--x:22vw;--y:10vh;width:70vw}
  .sp-lab-l .l-lit-dragon26{--x:0vw;--y:26vh;width:170vw}
  .sp-lab-d .l-museum-hall{--y:-16vh;width:260vw}
  .sp-lab-d .l-skeleton-long{--x:-20vw;--y:0vh;width:90vw}
  .sp-lab-d .l-trex-red-a{--x:6vw;--y:20vh;width:150vw}
}
/* 亮灯前后 */
.lab-lit{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(28px,5vw,88px);align-items:center;padding:clamp(80px,12vh,140px) var(--gut)}
.lab-lit h2{font:900 clamp(34px,3.6vw,58px)/1.2 var(--poster)}
.lab-lit-tx>p:first-of-type{margin-top:18px;font-size:18px;line-height:1.85}
.lab-lit-btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.lab-lit-btns button,.ls-btns button,.lsz-btns button{min-height:44px;padding:10px 18px;border:1px solid var(--night-line);background:none;color:#fff;font:inherit;font-size:15px;cursor:pointer}
.lab-lit-btns button[aria-pressed="true"],.ls-btns button[aria-pressed="true"],.lsz-btns button[aria-pressed="true"]{background:#fff;color:var(--night);border-color:#fff}
.lab button:focus-visible,.lab a:focus-visible,.ls-view:focus-visible{outline:3px solid var(--lamp);outline-offset:3px}
.lab-cmp{position:relative;margin:0;user-select:none;touch-action:pan-y}
.lab-cmp-in{position:relative;overflow:hidden}
.lab-cmp-in img{display:block;width:100%;height:auto;transition:transform .9s var(--ease)}
.lab-cmp-b{position:absolute;inset:0;clip-path:inset(0 0 0 var(--pos))}
.lab-cmp.zoom .lab-cmp-in img{transform:scale(2.1);transform-origin:52% 26%}
.lab-cmp-line{position:absolute;top:0;bottom:2.4em;left:var(--pos);width:2px;margin-left:-1px;background:#fff;box-shadow:0 0 18px rgba(255,230,190,.8);pointer-events:none}
.lab-cmp-line::after{content:'';position:absolute;top:50%;left:50%;width:40px;height:40px;margin:-20px 0 0 -20px;border:2px solid #fff;border-radius:50%;background:rgba(11,11,13,.55)}
.lab-cmp-range{position:absolute;inset:0 0 2.4em 0;width:100%;height:calc(100% - 2.4em);margin:0;opacity:0;cursor:ew-resize}
.lab-cmp-l{display:flex;justify-content:space-between;margin-top:10px;font-size:15px;color:var(--night-text)}
/* 滚动叙事复用 .tale；配上说明 */
.lab .tale{background:transparent}
.lab .ts-step .lab-cap{max-width:none}
/* 非对称题材卡片 */
.lab-cats-sec,.lab-projs-sec,.lab-hot,.lab-spin,.lab-size{padding:clamp(80px,12vh,140px) var(--gut)}
.lab-cats{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:minmax(220px,24vw);gap:clamp(12px,1.4vw,22px)}
.lab-cat{position:relative;overflow:hidden;background:#000;grid-column:span 4}
.lab-cat.w8{grid-column:span 8}.lab-cat.w6{grid-column:span 6}.lab-cat.w3{grid-column:span 3}.lab-cat.h2{grid-row:span 2}
.lab-cat-im{position:absolute;inset:0;display:block}
.lab-cat-im img{width:100%;height:100%;object-fit:cover;filter:brightness(.5) saturate(.8);transform:scale(1.02);transition:filter 1s var(--ease),transform 1.4s var(--ease)}
.lab-cat:hover .lab-cat-im img,.lab-cat:focus-within .lab-cat-im img{filter:none;transform:scale(1.06)}
.lab-cat-tx{position:absolute;left:0;right:0;bottom:0;padding:clamp(18px,2vw,32px);background:linear-gradient(to top,rgba(5,5,7,.92),rgba(5,5,7,0))}
.lab-cat h3{font:900 clamp(24px,2.2vw,38px)/1.2 var(--poster)}
.lab-cat h3 a{color:#fff;text-decoration:none}
.lab-cat-tx>p:not(.lab-chips){margin-top:8px;max-width:30em;font-size:15px;line-height:1.7;color:var(--night-text)}
.lab-cat.w3 .lab-cat-tx>p:not(.lab-chips){display:none}
.lab-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.lab-chips a{padding:4px 10px;border:1px solid rgba(255,255,255,.35);font-size:14px;color:#fff;text-decoration:none}
.lab-chips a:hover{background:#fff;color:var(--night)}
/* 项目入口：编辑式错落 */
.lab-projs{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(24px,3vw,48px) clamp(16px,2vw,32px);align-items:start}
.lab-proj{position:relative;color:var(--night-text);text-decoration:none;grid-column:span 4}
.lab-proj.p0{grid-column:1/span 7;grid-row:span 2}.lab-proj.p1{grid-column:9/span 4;margin-top:12vh}.lab-proj.p2{grid-column:8/span 5}.lab-proj.p3{grid-column:2/span 4}.lab-proj.p4{grid-column:7/span 5;margin-top:-6vh}
.lab-proj-im{overflow:hidden;background:#000}
.lab-proj-im img{display:block;width:100%;height:auto;filter:brightness(.8);transition:filter .8s var(--ease),transform 1.2s var(--ease)}
.lab-proj:hover .lab-proj-im img{filter:none;transform:scale(1.04)}
.lab-proj-tx{position:relative;margin:-3.2em 0 0 clamp(12px,2vw,28px);padding:14px 18px 0;background:var(--night);max-width:92%}
.lab-proj-tx span{font-size:14px;color:var(--night-dim)}
.lab-proj h3{margin-top:4px;font:700 clamp(20px,1.8vw,30px)/1.3 var(--poster)}
.lab-proj-tx p{margin-top:8px;font-size:15px;line-height:1.7;max-height:0;overflow:hidden;opacity:0;transition:max-height .6s var(--ease),opacity .6s}
.lab-proj:hover .lab-proj-tx p,.lab-proj:focus-visible .lab-proj-tx p{max-height:8em;opacity:1}
/* 专业资料（可抓取文字）：石白底 */
.lab-geo{position:relative;background:var(--paper);color:var(--ink);padding:clamp(80px,12vh,140px) var(--gut)}
.lab-geo h2,.lab-geo h3{color:var(--ink)}
.lab-geo-h{max-width:46em}
.lab-geo-h h2{font:900 clamp(32px,3.4vw,54px)/1.2 var(--poster)}
.lab-geo-h p{margin-top:16px;font-size:18px;line-height:1.9}
.lab-geo-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:40px;margin-top:56px}
.lab-geo-g h3{font:700 22px/1.3 var(--poster);margin-bottom:12px}
.lab-geo-g li{margin:8px 0;font-size:16px;line-height:1.75}
.lab-geo-g a{color:var(--ink)}
.lab-geo-faq{margin-top:56px;max-width:60em}
.lab-geo-faq h3{font:700 26px/1.3 var(--poster);margin-bottom:12px}
/* 机模：镜头推近（钉住） */
.lab-zoom{position:relative}
.lz-stage{position:relative;height:calc(100svh - var(--top-h) - var(--mbar-h));overflow:hidden}
.lab-zoom:not(.static){height:calc(100svh - var(--top-h) - var(--mbar-h) + 320vh)}
.lab-zoom:not(.static) .lz-stage{position:sticky;top:var(--top-h)}
.lz-f{position:absolute;inset:0;margin:0;display:grid;place-items:center;opacity:0;transition:opacity .8s var(--ease)}
.lz-f.on{opacity:1}
.lz-f img{width:100%;height:100%;object-fit:contain}
.lz-1 img{width:auto;max-width:88%;height:auto;max-height:84%;object-fit:contain;transform-origin:16% 30%}
.lz-tx{position:absolute;left:var(--gut);bottom:clamp(28px,7vh,72px);z-index:2;width:min(30em,calc(100% - var(--gut) * 2));margin:0;padding:0;list-style:none}
.lz-tx li{display:none;padding:22px 24px;background:rgba(11,11,13,.86)}
.lz-tx li.on{display:block}
.lz-tx h2{font:900 clamp(26px,2.4vw,38px)/1.25 var(--poster)}
.lz-tx p{margin:10px 0;font-size:16px;line-height:1.8}
.lab-zoom.static .lz-stage{height:auto;overflow:visible}
.lab-zoom.static .lz-f{position:relative;opacity:1;aspect-ratio:16/9;background:#000}
.lab-zoom.static .lz-tx{position:static;width:auto;padding:0 var(--gut)}
.lab-zoom.static .lz-tx li{display:block;margin-top:16px}
/* 结构热点 */
.lh-wrap{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:start}
.lh-pic{position:relative}
.lh-pic img{display:block;width:100%;height:auto}
.lh-dot{position:absolute;width:28px;height:28px;margin:-14px 0 0 -14px;padding:0;border:2px solid #fff;border-radius:50%;background:rgba(196,22,28,.85);cursor:pointer;box-shadow:0 0 0 6px rgba(255,255,255,.12)}
.lh-dot span{position:absolute;left:34px;top:50%;transform:translateY(-50%);padding:3px 8px;background:rgba(11,11,13,.85);color:#fff;font-size:14px;white-space:nowrap;opacity:0;transition:opacity .3s}
.lh-dot:hover span,.lh-dot:focus-visible span,.lh-dot[aria-pressed="true"] span{opacity:1}
.lh-dot[aria-pressed="true"]{background:#fff;box-shadow:0 0 0 8px rgba(196,22,28,.5)}
.lh-panel{position:sticky;top:calc(var(--top-h) + 24px)}
.lh-item figure{margin:0;background:#000}
.lh-item img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.lh-item figcaption{padding:8px 0;background:var(--night)}
.lh-item h3{margin-top:14px;font:900 clamp(24px,2vw,32px)/1.3 var(--poster)}
.lh-item>p{margin-top:10px;font-size:16px;line-height:1.8}
.lh-item h4{margin-top:18px;font-size:15px;color:#fff}
.lh-item ul{margin:8px 0 0;padding-left:1.2em}
.lh-item li{margin:6px 0;font-size:15px;line-height:1.7}
/* 多角度 */
.ls-wrap{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:start}
.ls-view{position:relative;aspect-ratio:3/2;overflow:hidden;background:#000;cursor:grab;touch-action:pan-y}
.ls-view.drag{cursor:grabbing}
.ls-f{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .25s}
.ls-f.on{opacity:1}
.ls-view.zoom .ls-f.on{transform:scale(2.2);transform-origin:var(--zx,50%) var(--zy,50%)}
.ls-lens{display:none}
.ls-side h3{font:900 clamp(26px,2.2vw,36px)/1.3 var(--poster)}
.ls-side>p:not(.wx-tags):not(.ls-btns){margin-top:14px;font-size:16px;line-height:1.8}
.ls-side .wx-tags{color:var(--night-dim)}
.ls-thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:20px}
.ls-thumbs button{padding:0;border:2px solid transparent;background:#000;cursor:pointer}
.ls-thumbs button[aria-pressed="true"]{border-color:#fff}
.ls-thumbs img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}
.ls-btns{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:20px}
.lab .ls-btns .more{color:#fff}
/* 尺寸对比 */
.lsz-btns{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:28px}
.lsz-stage{position:relative;container-type:inline-size;width:min(100%, calc((68vh - 24px) * var(--ar,1.6) / .88));height:calc(88cqw / var(--ar,1.6) + 24px);border-bottom:2px solid var(--night-line);--max:14}
.lsz-dino{position:absolute;left:0;bottom:0;width:calc(var(--m) / var(--max) * 88%);transition:width .8s var(--ease)}
.lsz-dino img{display:block;width:100%;height:auto}
.lsz-man{position:absolute;bottom:0;left:calc(var(--m) / var(--max) * 88% + 12px);height:calc(1.7 / var(--max) * 88cqw);min-height:18px;fill:#fff;transition:left .8s var(--ease)}
.lsz-read{position:absolute;right:0;top:0;margin:0;font-size:16px}
.lsz-read b{font:900 clamp(40px,4vw,64px)/1 var(--poster);color:#fff}
/* 入口页 */
.lab-i{padding-bottom:clamp(64px,10vh,120px)}
.lab-i-h{padding:clamp(48px,8vh,96px) var(--gut) 40px;max-width:60em}
.lab-i-h h1{margin-top:14px;font:900 clamp(44px,5vw,80px)/1.1 var(--poster);color:#fff}
.lab-i-h p{margin-top:16px;font-size:18px;line-height:1.85}
.lab-doors{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,32px);padding:0 var(--gut)}
.lab-door{display:block;color:var(--night-text);text-decoration:none}
.lab-door-im{overflow:hidden;background:#000;aspect-ratio:16/10}
.lab-door-im img{width:100%;height:100%;object-fit:cover;filter:brightness(.6);transition:filter .8s var(--ease),transform 1.2s var(--ease)}
.lab-door:hover .lab-door-im img{filter:none;transform:scale(1.04)}
.lab-door h2{margin-top:18px;font:900 clamp(26px,2.4vw,40px)/1.2 var(--poster)}
.lab-door p{margin-top:10px;font-size:16px;line-height:1.8}
.lab-i-more{padding:56px var(--gut) 0}
.lab-i-more h2{font:700 24px/1.3 var(--poster)}
.lab .lc-links .more{color:#fff}
.lab .lab-geo .lc-links .more{color:var(--ink)}
@media (max-width:900px){
  .lab-lit,.lh-wrap,.ls-wrap,.lab-doors{grid-template-columns:minmax(0,1fr)}
  .lab-cats{grid-template-columns:minmax(0,1fr);grid-auto-rows:62vw}
  .lab-cat,.lab-cat.w8,.lab-cat.w6,.lab-cat.w3{grid-column:auto;grid-row:auto}
  .lab-cat.w3 .lab-cat-tx>p:not(.lab-chips){display:block}
  .lab-projs{grid-template-columns:minmax(0,1fr)}
  .lab-proj,.lab-proj.p0,.lab-proj.p1,.lab-proj.p2,.lab-proj.p3,.lab-proj.p4{grid-column:auto;grid-row:auto;margin-top:0}
  .lab-proj-tx p{max-height:none;opacity:1}
  .lh-panel{position:static}
  .lh-dot span{display:none}
}
@media (prefers-reduced-motion:reduce){.lab{transition:none}.lab-cat-im img,.lab-proj-im img,.lab-cmp-in img,.lsz-dino,.lsz-man,.lz-f{transition:none}}

/* 复用的 Wētā 物种卡片放在石白底上（深色底上文字对比不够） */
.lab .wx-sec{position:relative;background:var(--paper);color:var(--ink)}
.lab .wx-sec h2,.lab .wx-sec h3{color:var(--ink)}
.lab .wx-sec .lc-links .more{color:var(--ink)}
.lab .wx-card:hover h3{color:var(--lamp)}
.lab-ve{padding:clamp(80px,12vh,140px) var(--gut)}
.lab-chips-ink a{color:var(--ink);border-color:var(--line)}
.lab-chips-ink a:hover{background:var(--ink);color:#fff}
.lz-f video.lv{object-fit:contain}
.lh-vid{position:relative;aspect-ratio:4/3;background:#000}
.lh-vid .still{display:block;width:100%;height:100%;object-fit:cover}
/* 正式总页补充段落（11-05） */
.lab-inst,.lab-navsec{padding:clamp(80px,12vh,140px) var(--gut)}
.lab-inst .g2{margin-bottom:24px}
.lab figcaption small,.lab figcaption b{color:var(--night-text)}
.lab .lc-nav h3{color:var(--night-dim)}
.lab .lc-nav a{color:var(--night-text);border-color:var(--night-line)}
.lab .lc-nav a:hover{border-color:#fff}
.lab .lc-nav span[aria-current]{background:#fff;color:var(--night)}
.lab-museum{padding:0 var(--gut) clamp(80px,12vh,140px)}

.lz-tx h2{word-break:keep-all;text-wrap:balance}
