/* 大洋艺术 · 两套世界（2026-11-06，03_关键文档/77）
   学头部公司：标题不用特粗，靠大小和留白；图通栏；发光的东西放在暗处；全站一种强调色。
   彩灯“灯火”：暖夜、暖白、鎏金，宋体 500，柔和圆角。
   恐龙“化石与琥珀”：深苔墨、骨白、琥珀，黑体 700，直角。
   read：知识长文，保留浅底，只换标题字重。
   只在内页加载，首页不受影响。最后加载，用变量换掉旧层的颜色。 */

body.w-lantern{
  --paper:#070505;--paper2:#100a09;--white:#1a1110;
  --ink:#fffaf2;--ink2:#e6dccf;--dim:#b9ab9c;--line:#33241f;--line2:#1f1512;
  --night:#040303;--night2:#0d0807;--night-line:#33241f;--night-text:#fffaf2;--night-dim:#c4b5a4;
  --lamp:#d81e26;--lamp-d:#b0141b;--gold:#f0bd58;
  --accent:#f0bd58;--on-accent:#fff;--btn:#d81e26;--cta-lantern:url(/img/v3/zigong-grand-1920.webp);
  --r:14px;--r-s:8px;
  --head:"Noto Serif SC","Source Han Serif SC","Songti SC",serif;--head-w:500;--head-ls:-.01em;
}
body.w-dino{
  --paper:#050706;--paper2:#0c100d;--white:#151a16;
  --ink:#f7f3e8;--ink2:#dcd7c8;--dim:#aeac99;--line:#2b312a;--line2:#1b201b;
  --night:#030504;--night2:#0a0d0b;--night-line:#2b312a;--night-text:#f7f3e8;--night-dim:#b4b29f;
  --lamp:#f0a032;--lamp-d:#cf8418;--gold:#f0a032;
  --accent:#f0a032;--on-accent:#120b03;--btn:#f0a032;--cta-dino:url(/img/v3/dino-hero-1920.webp);
  --r:0px;--r-s:0px;
  --head:"Noto Sans SC","Microsoft YaHei","PingFang SC",sans-serif;--head-w:700;--head-ls:-.015em;
}
body.w-read{--head:"Noto Serif SC","Source Han Serif SC","Songti SC",serif;--head-w:500;--head-ls:-.01em;--accent:var(--lamp);--r:10px;--r-s:6px}

html:has(body.w-lantern){background:#070505}
html:has(body.w-dino){background:#050706}
body.w-lantern,body.w-dino{background:var(--paper);color:var(--ink)}
body:is(.w-lantern,.w-dino) ::selection{background:var(--accent);color:#120907}
body:is(.w-lantern,.w-dino){scrollbar-color:var(--line) var(--paper)}
body:is(.w-lantern,.w-dino,.w-read) :focus-visible{outline:2px solid var(--accent);outline-offset:3px}

/* ---------- 字：大而不重 ---------- */
body:is(.w-lantern,.w-dino,.w-read) :is(h1,h2,h3,.th-tx h1,.ts-step h2,.pd h1,.sh h2,.cta h2,.item h3,.case h3){font-family:var(--head)!important;font-weight:var(--head-w)!important;letter-spacing:var(--head-ls)}
body:is(.w-lantern,.w-dino) main h2{font-size:clamp(30px,3.4vw,50px)!important;line-height:1.2}
body:is(.w-lantern,.w-dino) main :is(.item,.case) h3{font-size:19px!important;line-height:1.4}
body:is(.w-lantern,.w-dino) .phead{padding:clamp(40px,6vw,88px) var(--gut) clamp(32px,4vw,56px)}
body:is(.w-lantern,.w-dino) .phead h1{font-size:clamp(44px,6.4vw,96px);line-height:1.08}
body:is(.w-lantern,.w-dino) .phead p{color:var(--ink2);font-size:clamp(17px,1.4vw,20px);max-width:38em}
body:is(.w-lantern,.w-dino) p{color:inherit}
body:is(.w-lantern,.w-dino) .crumb,body:is(.w-lantern,.w-dino) .crumb a{color:var(--dim);font-size:15px}
body:is(.w-lantern,.w-dino) .crumb{padding-inline:var(--gut)}
body:is(.w-lantern,.w-dino) .more{color:var(--ink);border-color:var(--line);transition:border-color .25s var(--ease),color .25s var(--ease)}
body:is(.w-lantern,.w-dino) .more:hover{color:var(--accent);border-color:var(--accent)}
body:is(.w-lantern,.w-dino) .h2sub,body:is(.w-lantern,.w-dino) .lead{color:var(--ink2)}

/* ---------- 顶栏 ---------- */
body:is(.w-lantern,.w-dino) .top{background:color-mix(in srgb,var(--night) 88%,transparent);backdrop-filter:saturate(1.3) blur(14px);border-bottom:1px solid var(--line2)}

/* ---------- 按钮 ---------- */
body:is(.w-lantern,.w-dino) .btn{border-radius:var(--r-s);transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease)}
body:is(.w-lantern,.w-dino) :is(.btn.lamp,.btn.yellow,.btn.solid){background:var(--btn);border-color:var(--btn);color:var(--on-accent)}
body:is(.w-lantern,.w-dino) :is(.btn.lamp,.btn.yellow,.btn.solid):hover{background:var(--lamp-d);border-color:var(--lamp-d);color:var(--on-accent)}
body:is(.w-lantern,.w-dino) .btn:not(.lamp,.yellow,.solid,.ghost){background:transparent;border-color:var(--line);color:var(--ink)}
body:is(.w-lantern,.w-dino) .btn:not(.lamp,.yellow,.solid,.ghost):hover{border-color:var(--accent);color:var(--accent)}
body:is(.w-lantern,.w-dino) .btn.ghost{color:var(--ink);border-bottom-color:var(--accent)}
body:is(.w-lantern,.w-dino) .btn.ghost:hover{color:var(--accent)}

/* ---------- 卡片：图是主角 ---------- */
body:is(.w-lantern,.w-dino) :is(.item,.case) .ph{border-radius:var(--r);overflow:hidden;background:var(--white)}
body:is(.w-lantern,.w-dino) :is(.item,.case) .ph img{transition:transform 1s var(--ease)}
body:is(.w-lantern,.w-dino) :is(.item,.case):hover .ph img{transform:scale(1.035)}
body:is(.w-lantern,.w-dino) :is(.item,.case):hover h3{color:var(--accent)}
body:is(.w-lantern,.w-dino) .case .meta{color:var(--accent);font-size:14px;margin-top:14px}
body:is(.w-lantern,.w-dino) .case .meta span{color:inherit}
body:is(.w-lantern,.w-dino) :is(.item,.case) p{color:var(--dim);font-size:15px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
body:is(.w-lantern,.w-dino) .code{color:var(--dim)}
body:is(.w-lantern,.w-dino) .cases{gap:clamp(32px,3.4vw,52px) clamp(16px,2vw,28px)}

/* ---------- 问答 ---------- */
body:is(.w-lantern,.w-dino) .faq details{background:transparent!important;border:0!important;border-bottom:1px solid var(--line)!important;border-radius:0;padding:6px 0;margin:0}
body:is(.w-lantern,.w-dino) .faq summary{font-size:clamp(18px,1.5vw,21px);color:var(--ink);padding-block:16px}
body:is(.w-lantern,.w-dino) .faq details[open] summary{color:var(--accent)}
body:is(.w-lantern,.w-dino) .faq p{color:var(--ink2)}
.wf{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);gap:32px clamp(32px,6vw,96px);align-items:start}
.wf-h p{color:var(--dim);margin-top:12px}

/* ---------- 收尾：整屏实拍 + 电话 ---------- */
body:is(.w-lantern,.w-dino) .cta{position:relative;isolation:isolate;min-height:min(78svh,720px);align-content:end;background-size:cover;background-position:center;overflow:hidden}
body.w-lantern .cta{background-image:linear-gradient(to top,rgba(12,6,5,.9) 8%,rgba(12,6,5,.35) 60%,rgba(12,6,5,.55)),var(--cta-lantern)}
body.w-dino .cta{background-image:linear-gradient(to top,rgba(10,13,9,.92) 8%,rgba(10,13,9,.4) 60%,rgba(10,13,9,.6)),var(--cta-dino)}
body:is(.w-lantern,.w-dino) .cta h2{font-size:clamp(36px,5vw,76px)!important;line-height:1.14;color:#fff}
body:is(.w-lantern,.w-dino) .cta .tel{font-family:var(--head);font-weight:var(--head-w);color:#fff}
body:is(.w-lantern,.w-dino) .cta>span:not(.tel){color:var(--night-text)}

/* ---------- 页脚 ---------- */
.foot-mark{display:none}
body:is(.w-lantern,.w-dino,.w-read) .foot-mark{display:block;margin:clamp(32px,4vw,56px) 0 -.12em;font-family:var(--head);font-weight:var(--head-w);font-size:clamp(72px,19.6vw,330px);line-height:1;letter-spacing:.01em;color:#fff;opacity:.075;white-space:nowrap;text-align:center;overflow:hidden;user-select:none}
body:is(.w-lantern,.w-dino,.w-read) .foot{overflow:hidden}

/* ---------- 无边距拼贴图集 ---------- */
.mos{display:grid;gap:6px}
.mos-r{display:grid;gap:6px}
.mos-r.n1{grid-template-columns:1fr}
.mos-r.n2{grid-template-columns:repeat(2,minmax(0,1fr))}
.mos-r.n3{grid-template-columns:repeat(3,minmax(0,1fr))}
.mos figure{position:relative;margin:0;overflow:hidden;background:var(--white);cursor:zoom-in}
.mos img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.mos figure:hover img{transform:scale(1.03)}
.mos-r.n1 figure{aspect-ratio:21/9}
.mos-r.n2 figure{aspect-ratio:3/2}
.mos-r.n3 figure{aspect-ratio:4/3}
.mos figcaption{position:absolute;inset:auto 0 0 0;padding:44px 20px 14px;font-size:14px;line-height:1.5;color:#fff;background:linear-gradient(to top,rgba(0,0,0,.72),transparent);opacity:0;transition:opacity .3s var(--ease)}
.mos figure:hover figcaption,.mos figure:focus-within figcaption{opacity:1}
.wg-zodiac .mos figure{aspect-ratio:auto!important;background:transparent}
.wg-zodiac .mos img{height:auto;object-fit:contain;transform:none!important}
.wg-zodiac .mos figcaption{position:static;padding:10px 0 18px;background:none;opacity:1}
@media (hover:none){.mos figcaption{opacity:1}}
.wg{padding-block:clamp(40px,5vw,72px) 0}
.wg-h{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);gap:12px clamp(32px,6vw,96px);padding:0 var(--gut) clamp(28px,3vw,44px);align-items:end}
.wg-h p{color:var(--ink2);max-width:36em}

/* ---------- 案例详情 ---------- */
.cv-hero{position:relative;isolation:isolate;background:var(--night)}
.cv-hero.full{display:flex;align-items:flex-end;min-height:calc(100svh - var(--top-h,76px))}
.cv-hero.full .cv-pic{position:absolute;inset:0;z-index:-2;margin:0;cursor:zoom-in}
.cv-hero.full .cv-pic img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 45%}
.cv-hero.full::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(to top,var(--night) 0%,color-mix(in srgb,var(--night) 55%,transparent) 26%,transparent 56%)}
.cv-head{position:relative;width:100%;padding:0 var(--gut) clamp(36px,6vh,72px)}
.cv-head .crumb{padding:0 0 14px!important}
.cv-hero.full .crumb,.cv-hero.full .crumb a,.cv-hero.full .crumb i,.cv-hero.full .crumb span{color:var(--night-text)!important}
.cv-head h1{font-size:clamp(44px,8vw,132px);line-height:1.06;color:#fff;max-width:13em}
.cv-cap{position:absolute;right:var(--gut);bottom:18px;margin:0;font-size:14px;color:var(--night-dim);max-width:30em;text-align:right}
.cv-hero:not(.full){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:24px clamp(32px,5vw,80px);align-items:end;padding:clamp(40px,6vw,88px) var(--gut) 0}
.cv-hero:not(.full) .cv-pic{grid-column:2;grid-row:1;margin:0;border-radius:var(--r);overflow:hidden}
.cv-hero:not(.full) .cv-pic img{display:block;width:100%;height:auto;max-height:64vh;object-fit:cover}
.cv-hero:not(.full) .cv-pic figcaption{padding:8px 0;font-size:14px;color:var(--dim)}
.cv-hero:not(.full) .cv-head{grid-column:1;grid-row:1;padding:0 0 12px}
.cv-hero:not(.full) .cv-head h1{font-size:clamp(38px,4.6vw,72px)}
.cv-hero:not(.full) .cv-cap{position:static;grid-column:2;text-align:left}
.cv-open{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(0,1fr);gap:40px clamp(40px,7vw,120px);padding:clamp(64px,8vw,120px) var(--gut) clamp(40px,5vw,72px);align-items:start}
.cv-state{font-family:var(--head);font-weight:var(--head-w);font-size:clamp(25px,2.7vw,40px);line-height:1.5;letter-spacing:var(--head-ls);color:var(--ink);margin:0}
.cv-facts{margin:0;display:grid;gap:18px}
.cv-facts dt{color:var(--accent);font-size:14px}
.cv-facts dd{margin:4px 0 0;font-size:17px;color:var(--ink)}
.cv-body{padding:0 var(--gut) clamp(48px,6vw,88px)}
.cv-body .prose{columns:2;column-gap:clamp(40px,6vw,96px);max-width:none;color:var(--ink2);font-size:17px;line-height:1.85}
.cv-body .prose h3{break-after:avoid;font-size:20px;color:var(--ink);margin:0 0 8px}
.cv-body .prose p{break-inside:avoid;margin:0 0 22px}
.cv-body .prose ul{break-inside:avoid;margin:0;padding-left:1.2em}
.cv-links{display:flex;flex-wrap:wrap;gap:12px 26px;padding:28px var(--gut);background:var(--night)}

/* ---------- 案例列表 ---------- */
.cf-feat{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:6px;padding:0}
.cf-big{position:relative;display:block;overflow:hidden;min-height:clamp(320px,44vw,620px);text-decoration:none}
.cf-big img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.cf-big:hover img{transform:scale(1.03)}
.cf-big::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.72),transparent 50%)}
.cf-big-t{position:absolute;z-index:1;left:clamp(20px,2.4vw,36px);right:20px;bottom:clamp(18px,2.2vw,32px);display:grid;gap:6px;color:#fff}
.cf-big-t b{font-family:var(--head);font-weight:var(--head-w);font-size:clamp(26px,2.8vw,42px);line-height:1.2}
.cf-big-t small{font-size:15px;color:#ece5da}
body:is(.w-lantern,.w-dino) .cf-c{border-radius:999px;border-color:var(--line);color:var(--ink2)}
body:is(.w-lantern,.w-dino) .cf-c:hover{border-color:var(--accent);color:var(--accent)}
body:is(.w-lantern,.w-dino) .cf-c[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#171007}
body:is(.w-lantern,.w-dino) .cf-c[aria-pressed="true"] span{color:#171007}

/* ---------- 彩灯：灯组页 ---------- */
body.w-lantern .tale-hero{min-height:calc(100svh - var(--top-h,76px))}
body.w-lantern .th-tx h1{font-size:clamp(64px,11vw,176px);line-height:1;margin:10px 0 18px}
.th-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px 48px}
.th-row .th-lead{max-width:36em;margin:0;color:var(--night-text)}
.th-row .btns{margin:0;flex:none;padding-bottom:4px}
body.w-lantern .th-cap{bottom:10px}
.st{padding:clamp(72px,9vw,128px) var(--gut) clamp(24px,3vw,48px)}
.st-open{font-family:var(--head);font-weight:var(--head-w);font-size:clamp(25px,2.7vw,40px);line-height:1.5;max-width:26em;margin:0 0 clamp(48px,6vw,88px);color:var(--ink)}
.st-stack{display:grid;gap:clamp(16px,2vw,24px)}
.st-card{position:sticky;top:calc(var(--top-h,76px) + 16px + var(--i)*12px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);min-height:min(74svh,680px);background:linear-gradient(135deg,#a30f16,#5e070c);color:#fff5e8;border-radius:var(--r);overflow:hidden;box-shadow:0 -18px 50px rgba(0,0,0,.55);will-change:transform}
.st-tx{display:flex;flex-direction:column;justify-content:flex-end;gap:14px;padding:clamp(24px,3vw,48px)}
.st-tx h2{color:#fff;font-size:clamp(28px,3vw,46px)!important;line-height:1.2}
.st-tx p{color:#f8e6d3;font-size:clamp(16px,1.25vw,18px);line-height:1.85;margin:0}
.st-card figure{margin:0;min-height:0;cursor:zoom-in;overflow:hidden}
.st-card img{display:block;width:100%;height:100%;object-fit:cover}
.st-photo-complete .st-card figure{background:var(--night)}
.st-photo-complete .st-card img{object-fit:contain}
.st-duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px clamp(40px,6vw,96px)}
.st-duo h2{margin-bottom:18px}
.st-duo p{color:var(--ink2);line-height:1.85}
.st-list{margin:0;padding:0;list-style:none}
.st-list li{padding:14px 0;border-bottom:1px solid var(--line);color:var(--ink2)}
.st-fits{margin:28px 0 12px;color:var(--ink2)}
.st-fits a{color:var(--accent)}
body.w-lantern .st-pairs .sh{margin-bottom:28px}

/* ---------- 恐龙：产品页 ---------- */
.pv-top{padding:12px var(--gut) clamp(40px,5vw,72px)}
.pv-top .crumb{padding-inline:0}
body.w-dino .pd{grid-template-columns:minmax(0,1.75fr) minmax(0,1fr);gap:clamp(28px,4vw,72px);align-items:end;margin-top:14px}
body.w-dino .pd .main-img img{max-height:74vh;width:100%;object-fit:contain;background:#000}
body.w-dino .pd .thumbs button{border-radius:0;border-color:var(--line)}
body.w-dino .pd .thumbs button[aria-current="true"]{border-color:var(--accent)}
body.w-dino .pd h1{font-size:clamp(34px,3.8vw,58px);line-height:1.14;margin:0}
.pv-side .pd-no{color:var(--accent);margin-top:12px}
.pv-sp,.pv-story{color:var(--ink2);font-size:18px;line-height:1.8;margin-top:14px}
body.w-dino .ask{background:transparent;color:var(--ink);padding:18px 0 0;margin-top:22px;border-top:1px solid var(--line)}
body.w-dino .ask span{color:var(--ink2)}
body.w-dino .ask b{display:block;font-family:var(--head);font-weight:var(--head-w);font-size:clamp(28px,2.6vw,38px);color:var(--ink);margin:6px 0 14px}
.pv-file{padding:clamp(48px,6vw,88px) var(--gut);background:var(--paper2)}
.pv-file h2{margin-bottom:clamp(24px,3vw,40px)}
.pv-file dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:0 clamp(24px,3vw,48px);margin:0}
.pv-file dl>div{padding:16px 0 18px;border-top:1px solid var(--line)}
.pv-file dt{font-size:15px;color:var(--accent)}
.pv-file dd{margin:6px 0 0;color:var(--ink);font-size:17px;line-height:1.75}
.pv-file dd a{color:var(--ink);text-underline-offset:3px}
.pv-file dd small,.pv-file .dim{color:var(--dim)}
.pv-file .note{color:var(--dim);font-size:15px;line-height:1.7;margin:22px 0 0;max-width:60em}
.pv-use h2{font-size:clamp(24px,2.2vw,32px)!important;margin-bottom:18px}
.pv-chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px 10px;margin:0;padding:0}
.pv-chips li{padding:7px 14px;border:1px solid var(--line);color:var(--ink2);font-size:15px}
.pv-more{padding-block:0 clamp(24px,3vw,40px)!important;color:var(--ink2)}

/* ---------- 窄屏 ---------- */
@media (max-width:900px){
  .wf,.wg-h,.cv-open,.cv-hero:not(.full),.st-duo{grid-template-columns:minmax(0,1fr)}
  .cv-hero:not(.full) .cv-pic,.cv-hero:not(.full) .cv-head,.cv-hero:not(.full) .cv-cap{grid-column:1;grid-row:auto}
  .cv-body .prose{columns:1}
  .cf-feat{grid-template-columns:minmax(0,1fr)}
  .st-card{position:relative;top:auto;grid-template-columns:minmax(0,1fr);min-height:0}
  .st-card figure{aspect-ratio:3/2;order:-1}
  .st-tx{justify-content:flex-start}
  body.w-dino .pd{grid-template-columns:minmax(0,1fr)}
  .cv-cap{display:none}
}
@media (max-width:620px){
  .mos-r.n3,.mos-r.n2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mos-r.n3 figure:first-child{grid-column:span 2}
  .mos-r.n1 figure{aspect-ratio:3/2}
}
@media (prefers-reduced-motion:reduce){
  .st-card{position:relative;top:auto}
  .mos img,.cf-big img,body:is(.w-lantern,.w-dino) :is(.item,.case) .ph img{transition:none}
}
.pv-top .pd{padding:0;margin-inline:0}

/* ---------- 总页和方案页：整屏实拍首屏 ---------- */
body:is(.w-lantern,.w-dino) .tale-hero{min-height:calc(100svh - var(--top-h,76px))}
body:is(.w-lantern,.w-dino) .th-page .th-tx h1{font-size:clamp(42px,6.8vw,112px);line-height:1.12;margin:10px 0 20px;max-width:14em}
body:is(.w-lantern,.w-dino) .th-tx h1 em{font-style:normal;color:var(--accent)}
body:is(.w-lantern,.w-dino) .th-tx h1{color:#fff}
body:is(.w-lantern,.w-dino) .th-tx .crumb{padding-inline:0}
body:is(.w-lantern,.w-dino) .th-shade{background:linear-gradient(to top,var(--night) 0%,color-mix(in srgb,var(--night) 62%,transparent) 28%,transparent 62%)}
body.w-dino .th-tx h1{font-size:clamp(56px,9vw,150px)}

/* ---------- 总页里的旧展厅组件换到新节奏 ---------- */
body:is(.w-lantern,.w-dino) .lab-note{display:none}
body:is(.w-lantern,.w-dino) .lab::before{display:none}
body:is(.w-lantern,.w-dino) .lab h2,body:is(.w-lantern,.w-dino) .lab h3{color:var(--ink)}
body:is(.w-lantern,.w-dino) .lab-cat{border-radius:var(--r)}
body:is(.w-lantern,.w-dino) .lab-cat-im img{filter:none}
body:is(.w-lantern,.w-dino) .lab-cat h3 a{color:#fff}
body:is(.w-lantern,.w-dino) .lab-cat:hover .lab-cat-im img{filter:none}
body:is(.w-lantern,.w-dino) .lab-projs{gap:clamp(36px,3.4vw,52px) clamp(16px,2vw,28px)}
body:is(.w-lantern,.w-dino) .lab-proj,body:is(.w-lantern,.w-dino) .lab-proj.p2,body:is(.w-lantern,.w-dino) .lab-proj.p3,body:is(.w-lantern,.w-dino) .lab-proj.p4{grid-column:span 4;grid-row:auto;margin:0}
body:is(.w-lantern,.w-dino) .lab-proj.p0{grid-column:span 8;grid-row:auto;margin:0}
body:is(.w-lantern,.w-dino) .lab-proj.p1{grid-column:span 4;margin:0}
body:is(.w-lantern,.w-dino) .lab-proj-im{border-radius:var(--r);aspect-ratio:3/2}
body:is(.w-lantern,.w-dino) .lab-proj.p0 .lab-proj-im{aspect-ratio:auto;height:clamp(240px,29vw,430px)}
body:is(.w-lantern,.w-dino) .lab-proj.p1 .lab-proj-im{aspect-ratio:auto;height:clamp(240px,29vw,430px)}
body:is(.w-lantern,.w-dino) .lab-proj-im img{width:100%;height:100%;object-fit:cover;filter:none}
body:is(.w-lantern,.w-dino) .lab-proj-tx{margin:14px 0 0;padding:0;background:none;max-width:none}
body:is(.w-lantern,.w-dino) .lab-proj-tx span{color:var(--accent)}
body:is(.w-lantern,.w-dino) .lab-proj:hover h3{color:var(--accent)}
body:is(.w-lantern,.w-dino) .lab .lc-links .more{color:var(--ink)}
body:is(.w-lantern,.w-dino) .lab-src{border-color:var(--line);color:var(--dim);border-radius:var(--r-s)}
@media (max-width:900px){
  body:is(.w-lantern,.w-dino) :is(.lab-proj,.lab-proj.p0,.lab-proj.p1,.lab-proj.p2,.lab-proj.p3,.lab-proj.p4){grid-column:1/-1}
  body.w-dino .th-tx h1{font-size:clamp(44px,14vw,88px)}
  .th-row{display:grid;gap:18px}
}
@media (max-width:760px){.cv-hero.full{min-height:68svh}}

/* 缺少对应照片的工序用文字与留白衔接，避免错把框架制作当布线。 */
.craft-step-text{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:clamp(24px,3vw,48px);color:inherit}
.craft-step-text h3{margin:0 0 16px;font-size:clamp(22px,2.2vw,32px);line-height:1.3}
.craft-step-text p{max-width:28em;margin:0;font-size:17px;line-height:1.75}
@media(max-width:760px){.craft-step-text{padding:20px 0 28px}}

/* ---------- 办灯会、怎么合作 ---------- */
.hub-t{font-size:clamp(34px,4.4vw,72px)!important;line-height:1.16;margin:0 0 clamp(36px,5vw,72px);max-width:16em}
.st-tx h3{color:#fff;font-size:clamp(28px,3vw,46px)!important;line-height:1.2;margin:0}
.hub-g{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin-inline:calc(-1 * var(--gut))}
.hub-c{position:relative;display:block;grid-column:span 2;aspect-ratio:3/4;overflow:hidden;text-decoration:none;color:#fff}
.hub-c:nth-child(1),.hub-c:nth-child(2){grid-column:span 3;aspect-ratio:4/3}
.hub-c img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.hub-c:hover img{transform:scale(1.03)}
.hub-c::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.76),transparent 50%)}
.hub-c span{position:absolute;z-index:1;left:clamp(18px,2.2vw,32px);right:18px;bottom:clamp(16px,2vw,28px);display:grid;gap:4px}
.hub-c b{font-family:var(--head);font-weight:var(--head-w);font-size:clamp(28px,3vw,48px);line-height:1.2}
.hub-c small{font-size:15px;color:#ece5da}
.hub-rest{margin-top:24px}
.hub-root{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:28px clamp(40px,6vw,96px);align-items:end;padding:clamp(80px,10vw,150px) var(--gut);background:linear-gradient(120deg,#a30f16,#4f060a);color:#fff5e8}
.hub-root h2{color:#fff;font-size:clamp(36px,5vw,84px)!important;line-height:1.16;margin:0}
.hub-root p{color:#f8e6d3;font-size:clamp(16px,1.25vw,19px);line-height:1.85;margin:0 0 16px}
.hub-root .more{color:#fff;border-color:#f3c8a0}
.hub-root .more:hover{color:var(--accent);border-color:var(--accent)}
.co-t{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 clamp(20px,3vw,48px);margin:0}
.co-t>div{padding:18px 0 22px;border-top:1px solid var(--line)}
.co-t dt{font-size:16px;color:var(--ink2)}
.co-t dd{margin:10px 0 0;font-family:var(--head);font-weight:var(--head-w);font-size:clamp(34px,4vw,64px);line-height:1.15;color:var(--accent)}
.co-t2{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:20px}
.co-note{margin:24px 0 0;color:var(--ink2);font-size:clamp(17px,1.4vw,20px)}
.co-care{background:var(--paper2)}
.co-care .two{gap:40px clamp(40px,7vw,120px);align-items:start}
.co-care h2{margin-bottom:20px}
.co-care p{color:var(--ink2)}
.co-addr{margin:12px 0 18px}
@media (max-width:900px){
  .hub-root{grid-template-columns:minmax(0,1fr)}
  .co-t{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hub-c,.hub-c:nth-child(1),.hub-c:nth-child(2){grid-column:span 6;aspect-ratio:3/2}
}
.co-w{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 clamp(20px,3vw,48px);margin:0}
.co-w>div{padding:18px 0 8px;border-top:1px solid var(--line)}
.co-w dt{font-family:var(--head);font-weight:var(--head-w);font-size:clamp(28px,2.8vw,44px);color:var(--ink)}
.co-w dd{margin:10px 0 0;color:var(--ink2)}
@media (max-width:760px){.co-w{grid-template-columns:minmax(0,1fr)}.co-w>div{padding-bottom:18px}}
.co-w>div>b{display:block;font-family:var(--head);font-weight:var(--head-w);font-size:clamp(28px,2.8vw,44px);color:var(--ink)}
.co-w>div>strong{display:block;margin-top:8px;font-family:var(--head);font-weight:var(--head-w);font-size:clamp(24px,2.4vw,36px);color:var(--accent)}
.co-w>div>p{margin:10px 0 0;color:var(--ink2)}
.co-w .co-scale{color:var(--dim);font-size:15px}

/* ---------- 质感与代码动画（11-07） ---------- */
body:is(.w-lantern,.w-dino)::after{content:"";position:fixed;inset:0;z-index:90;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.ch{will-change:opacity}
.lit-cv{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity .35s linear}
.lit-cv.on{opacity:1}
html.oa-lit .tale-hero .th-img img,html.oa-lit .cv-hero.full .cv-pic img{opacity:0;animation:oa-show .4s linear 3.2s forwards}
.lit-on img,.lit-off img{animation:none!important}
html.oa-lit .lit-on img{opacity:0}
html.oa-lit .lit-off img{opacity:1}
@keyframes oa-show{to{opacity:1}}
@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}}
::view-transition-old(root),::view-transition-new(root){animation-duration:.45s}

/* 仿真方案长标题在手机上保持两行，避免把“科技馆”等词拆开。 */
@media (max-width:520px){body.w-dino .sf-head h1{font-size:clamp(27px,9vw,34px);text-wrap:normal}}

/* 昆虫与蝎子共用展品线：控制桌面标题宽度，保留实物主体。 */
@media(min-width:901px){body.w-dino .wx-insect .th-tx h1{font-size:clamp(52px,5.1vw,76px)}}

/* 无可公开展示影像的案例：文字入口保留完整信息与焦点，不用其他项目图片占位。 */
.case[data-case-text]{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:10px}
