/* ==========================================================================
   QSTAR-LAYOUT v1 · 内页 / 子栏目「布局」唯一规格  ——  2026-10-05
   --------------------------------------------------------------------------
   单一真源（single source of truth）。只服务于**内页**（section.tpl 等 9 个子栏目、
   member / business / info / vip / privacy），首页 index.tpl 保持自己的内联体系
   —— 两边令牌取值一致（24 / 32 阶梯），因此全站节奏统一。

   ⚠️ 为什么必须拆成两个文件：首页的 --pad 阶梯写在 index.tpl 的内联 <style> 里，
      若本文件也定义 :root{--pad:24px} 并被首页加载，首页大屏的 --pad:32px 会被
      打回 24px。所以本文件**只能**挂在 corp_header.lbi（首页不使用该头部）。

   解决的问题（改造前）：
     1) .container 与页脚各写一套左右内距 ⇒ 大屏页脚与正文边界不齐
     2) .works-grid 用 auto-fill(minmax(300px)) ⇒ 列数随宽度漂移，与首页固定 4 列节奏不同
     3) 子栏目卡片（220px 定高图 / 24px 内距 / 20px 标题）与首页作品卡规格不同
   ========================================================================== */

:root{
  --pad:24px;      /* 容器左右内距：正文 / 页脚 / 导航必须同源 */
  --gap:22px;      /* 栅格间距：所有卡片网格共用 */
  --secpad:78px;   /* 区块上下留白 */
}
@media (min-width:1500px){ :root{ --pad:32px; --gap:26px; --secpad:96px } }
@media (min-width:1900px){ :root{ --gap:30px; --secpad:112px } }
@media (max-width:560px) { :root{ --pad:18px; --gap:18px } }

/* ---------- 1) 容器与页脚共用同一左右内距 ⇒ 上下边界严格对齐 ---------- */
.container,
.footer-content,
.foot-grid,
.footer-bottom,
.foot-bottom{ padding-left:var(--pad); padding-right:var(--pad) }

/* ---------- 2) 作品瀑布墙 · VRMASONRY_V1 (2026-10-06) ----------
   由「4 列等高栅格」改为「多列不规则瀑布」：
     · column-count + break-inside:avoid ⇒ 真正的错落，而非等高一行
     · 画幅 8 档循环 ⇒ 高度差来源；4 列时每列拿到的序列互不相同，不镜像重复
     · 列数阶梯 4 → 3 → 2 → 1（沿用原 QSTAR-LAYOUT 的断点体系）
   规格与首页 index.tpl .works-grid 一致，两边只改令牌不动结构。 */
.works-grid{
  display:block;
  column-count:5;
  column-gap:var(--gap);
  counter-reset:wcard;
}
/* 🔴 必须带 .works-grid 前缀：
   (a) 压过 section.tpl 内联的 .vr-card{display:flex}（同特异性靠后取胜不可靠）；
   (b) 压过 .reveal/.animate-in 的 transform，否则 hover 位移失效。 */
.works-grid .vr-card{
  display:block;
  counter-increment:wcard;
  margin:0 0 var(--gap);
  break-inside:avoid; -webkit-column-break-inside:avoid; page-break-inside:avoid;
}
@media (max-width:1366px){ .works-grid{ column-count:4 } }
@media (max-width:1080px){ .works-grid{ column-count:3 } }
@media (max-width:760px) { .works-grid{ column-count:2 } }
/* VRMSON2COL: 手机也保持 2 列横排（在线全景作品不再竖排单列），间距同步收紧 */
@media (max-width:520px) { .works-grid{ column-count:2; column-gap:10px } .works-grid .vr-card{ margin-bottom:10px } }

/* ---------- 3) 卡片基准：对齐首页 .wcard ---------- */
.works-grid .vr-card .card-image{ height:auto; aspect-ratio:4/3; overflow:hidden }
.works-grid .vr-card:nth-child(8n+2) .card-image{ aspect-ratio:3/4 }
.works-grid .vr-card:nth-child(8n+3) .card-image{ aspect-ratio:1/1 }
.works-grid .vr-card:nth-child(8n+4) .card-image{ aspect-ratio:16/11 }
.works-grid .vr-card:nth-child(8n+5) .card-image{ aspect-ratio:4/5 }
.works-grid .vr-card:nth-child(8n+6) .card-image{ aspect-ratio:5/3 }
.works-grid .vr-card:nth-child(8n+7) .card-image{ aspect-ratio:3/2 }
.works-grid .vr-card:nth-child(8n+8) .card-image{ aspect-ratio:2/3 }

/* 滚动揭示（替换原"加载即播"动画）：默认(.animate-in)隐藏，进入视口加 .in-view 才淡入上移；
   .js 前缀 ⇒ 无 JS 时全部可见（优雅降级）。用独立 translate 属性，不占用 hover 的 transform。 */
.js .animate-in{ opacity:0; translate:0 24px; transition:opacity .55s ease, translate .55s ease; will-change:opacity,translate }
.js .animate-in.in-view{ opacity:1; translate:0 0 }

.works-grid .vr-card:hover{ transform:translateY(-8px) }
.works-grid .vr-card:hover .card-image img{ transform:scale(1.08) }
/* 类型徽标压在悬停蒙层之上 */
.works-grid .vr-card .card-type-badge{ z-index:3 }

.vr-card .card-content{
  padding:16px 18px 18px;
  display:flex; flex-direction:column; gap:8px;
}
.vr-card .card-title{
  font-size:16px; font-weight:700; line-height:1.45; margin-bottom:0;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.vr-card .card-desc{ margin-bottom:0 }
.vr-card .card-date{ margin-top:0 }
/* 标签行沉底 ⇒ 卡片内「标签 + 日期」落在同一基线 */
.vr-card .card-tags{ margin-top:auto }

/* ---------- 4) 栏目标题：与首页 .sec-head 同一条渐变短线锚点 ---------- */
.page-header:after{
  content:""; display:block; width:58px; height:3px; border-radius:3px;
  margin:22px auto 0;
  background:linear-gradient(90deg,var(--azure),var(--cyan) 55%,var(--gold2));
}

/* ---------- 5) 区块节奏 ---------- */
.section-page{ padding-top:130px; padding-bottom:var(--secpad) }

/* ==========================================================================
   QSTAR-LAYOUT v2 · 瀑布墙视觉增强（VRMASONRY_V2）· 2026-10-07
   --------------------------------------------------------------------------
   在 VRMASONRY_V1（多列不规则瀑布）基础上叠加「彩色标识 + 颜色搭配 + 层次感」：
     · 8 档协调主色循环，每张卡片一个品牌色（与 8 档画幅同序，相邻不撞色）
     · 类型徽标 → 渐变胶囊 + 同色辉光（彩色标识）；无徽标卡由顶部同色光线补身份色
     · 悬停升起 + 图片放大 + 中央进入钮浮现 + 同色光晕投影 ⇒ 纵深与层次
     · 筛选条 / 分页品牌渐变高亮，与全站节奏统一
   全部带 .works-grid / .vr-card 前缀，压过 vr_corp.css / section.tpl 内联同名旧规则。
   ========================================================================== */

/* 8 档主色 = 品牌冷色家族连续色相渐变（协调规则，非随机）：
   以品牌 azure(#2F6BFF) 为锚点，在相邻冷色域 teal→cyan→sky→blue→azure→indigo→violet
   内按色相单调推进，统一 ~80% 饱和 / ~62% 明度，剔除了脱离品牌的绿/琥珀/玫红。
   相邻卡不撞色、整体同属一个"科技冷色"家族，既保留彩色标识又成体系。 */
.works-grid{
  --mc1:#2DD4BF; --mc2:#22D3EE; --mc3:#38BDF8; --mc4:#3B82F6;
  --mc5:#2F6BFF; --mc6:#6366F1; --mc7:#818CF8; --mc8:#A78BFA;
}
/* 每档卡片取一个主色（与 VRMASONRY_V1 的 8 档画幅同序） */
.works-grid .vr-card{ --accent:var(--mc1); }
.works-grid .vr-card:nth-child(8n+1){ --accent:var(--mc1); }
.works-grid .vr-card:nth-child(8n+2){ --accent:var(--mc2); }
.works-grid .vr-card:nth-child(8n+3){ --accent:var(--mc3); }
.works-grid .vr-card:nth-child(8n+4){ --accent:var(--mc4); }
.works-grid .vr-card:nth-child(8n+5){ --accent:var(--mc5); }
.works-grid .vr-card:nth-child(8n+6){ --accent:var(--mc6); }
.works-grid .vr-card:nth-child(8n+7){ --accent:var(--mc7); }
.works-grid .vr-card:nth-child(8n+8){ --accent:var(--mc8); }

/* 卡片本体：分层投影 + 大圆角（覆盖 .glass-card 静息态，hover 加同色辉光） */
.works-grid .vr-card{
  border-radius:var(--radius-lg);
  background:var(--panel);
  border:1px solid var(--border);
  box-shadow:0 12px 32px -14px rgba(2,8,24,.62);
  overflow:hidden;
  transition:transform .38s cubic-bezier(.22,.61,.36,1),
             box-shadow .38s ease, border-color .38s ease;
}
.works-grid .vr-card:hover{
  transform:translateY(-12px);
  border-color:var(--accent);
  box-shadow:0 30px 68px -20px rgba(2,8,24,.78), 0 16px 48px -26px var(--accent);
}

/* 类型徽标：暗色块 → 渐变胶囊 + 同色辉光（彩色标识），左上角与首页一致 */
.works-grid .vr-card .card-type-badge{
  top:14px; left:14px; right:auto; z-index:4;
  padding:.34rem .82rem; border-radius:999px;
  font-size:.72rem; font-weight:800; letter-spacing:.03em; color:#fff;
  background:linear-gradient(135deg, var(--accent) 0%, var(--accent) 58%, rgba(255,255,255,.30) 100%);
  border:1px solid rgba(255,255,255,.38);
  box-shadow:0 6px 18px -4px var(--accent);
}

/* 顶部同色光线：每张卡（含无徽标者）都有身份色 */
.works-grid .vr-card .card-image{ position:relative }
.works-grid .vr-card .card-image::after{
  content:""; position:absolute; top:0; left:0; right:0; height:3px; z-index:5;
  background:linear-gradient(90deg, var(--accent), transparent 78%);
  opacity:.92;
}

/* 中央圆形「进入」按钮：悬停浮现，强化可点击暗示 + 纵深 */
.works-grid .vr-card .card-play{
  position:absolute; inset:0; z-index:3; display:flex; align-items:center; justify-content:center;
  opacity:0; transform:scale(.78); transition:opacity .32s ease, transform .38s cubic-bezier(.22,.61,.36,1);
  pointer-events:none;
}
.works-grid .vr-card:hover .card-play{ opacity:1; transform:scale(1) }
.works-grid .vr-card .card-play span{
  width:64px; height:64px; border-radius:50%; display:grid; place-items:center; color:#fff; font-size:22px;
  background:linear-gradient(135deg, var(--accent), rgba(255,255,255,.28));
  border:2px solid rgba(255,255,255,.65);
  box-shadow:0 12px 32px -6px var(--accent);
  backdrop-filter:blur(2px);
}
.works-grid .vr-card .card-play span::before{
  content:""; width:0; height:0; margin-left:4px;
  border-style:solid; border-width:10px 0 10px 17px; border-color:transparent transparent transparent #fff;
}

/* 底部统计蒙层：悬停浮现（vr_corp 默认），渐变更柔和 */
.works-grid .vr-card .card-overlay{
  background:linear-gradient(to top, rgba(4,12,30,.92), rgba(4,12,30,.25) 55%, transparent);
  padding:1.1rem 1.1rem 1rem;
}
.works-grid .vr-card .overlay-stats .stat{ font-weight:700 }

/* 标题悬停微提亮 */
.works-grid .vr-card .card-title{ color:var(--text); transition:color .25s ease }
.works-grid .vr-card:hover .card-title{ color:#fff }

/* 筛选条：玻璃底 + 品牌渐变高亮（与全站节奏统一） */
.filter-bar{ display:flex; flex-wrap:wrap; gap:10px; margin:0 0 30px }
.filter-btn{
  display:inline-flex; align-items:center; padding:9px 18px; border-radius:999px;
  font-size:13.5px; font-weight:600; color:var(--muted);
  background:var(--panel); border:1px solid var(--border);
  transition:all .25s ease;
}
.filter-btn:hover{ color:var(--text); border-color:var(--border2); transform:translateY(-2px) }
.filter-btn.active{
  color:#fff; border-color:transparent;
  background:linear-gradient(135deg, var(--azure), var(--cyan));
  box-shadow:0 10px 26px -10px var(--azure);
}

/* 分页：与筛选条同一套胶囊语言 */
.pager-bar{ display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin-top:36px }
.pager-bar a, .pager-bar .cur{
  display:inline-flex; align-items:center; justify-content:center; min-width:38px; height:38px; padding:0 13px;
  border-radius:12px; font-size:13.5px; font-weight:600; color:var(--muted);
  background:var(--panel); border:1px solid var(--border); transition:all .2s ease;
}
.pager-bar a:hover{ color:var(--text); border-color:var(--border2); transform:translateY(-2px) }
.pager-bar .cur{
  color:#fff; border-color:transparent;
  background:linear-gradient(135deg, var(--azure), var(--cyan));
  box-shadow:0 8px 22px -10px var(--azure);
}


/* ===== V2-UNIFY（2026-10-17）：与首页 MSN 风瀑布流统一 ===== */
.works-grid{ column-gap:14px }
.works-grid .vr-card{ margin:0 0 14px; border-radius:13px }
.works-grid .vr-card:hover{ transform:translateY(-5px) }
.works-grid .vr-card:hover .card-image img{ transform:scale(1.06) }
@media (max-width:520px){
  .works-grid{ column-count:2; column-gap:10px }
  .works-grid .vr-card{ margin:0 0 10px }
}

/* ==========================================================================
   CORPNAV-UNIFY (2026-10-17)：全站子项目统一导航 + 2 列功能菜单
   修复：park/market/member 等仅加载本文件的页面此前完全没有导航样式。
   令牌与 vr_corp.css 同值互为回退；两文件同时加载时规则一致，无冲突。
   ========================================================================== */
:root{
  --bg:#07142E; --bg2:#0A1E45; --bg3:#0E2A5C;
  --panel:rgba(255,255,255,.045); --panel2:rgba(255,255,255,.075);
  --border:rgba(255,255,255,.10); --border2:rgba(255,255,255,.16);
  --azure:#2F6BFF; --azure2:#2E9BFF; --cyan:#27C6E8;
  --gold:#D4AF37; --gold2:#E9C46A;
  --text:#EAF1FB; --muted:#A8B8D8; --sub:#6E82AC;
  --maxw:1200px;
}
body{ background:var(--bg); color:var(--text);
  font-family:'Inter','PingFang SC','Microsoft YaHei',system-ui,-apple-system,sans-serif; -webkit-font-smoothing:antialiased; }
a{ color:inherit; text-decoration:none }

/* —— 顶栏 —— */
.corp-nav{ position:sticky; top:0; left:0; right:0; z-index:1000; border-bottom:1px solid transparent;
  background:rgba(7,20,46,0); transition:all .3s ease; }
.corp-nav.scrolled{ background:rgba(7,20,46,.82); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid var(--border); box-shadow:0 8px 30px rgba(0,0,0,.35); }
.nav-inner{ max-width:var(--maxw); margin:0 auto; padding:16px 24px; display:flex; align-items:center; gap:28px; }
.brand{ display:flex; align-items:center; gap:11px; text-decoration:none; color:var(--text); font-weight:800; font-size:19px; letter-spacing:.3px; white-space:nowrap; }
.brand .mark{ width:38px; height:38px; border-radius:11px; display:grid; place-items:center;
  background:linear-gradient(135deg,var(--azure),var(--cyan)); box-shadow:0 6px 18px rgba(47,107,255,.5); color:#fff; font-size:20px; font-weight:800; }
.brand .name b{ color:var(--gold2); font-weight:800; }
.nav-links{ display:flex; gap:4px; margin-left:8px; flex:1; }
.nav-links a{ padding:9px 14px; border-radius:10px; color:var(--muted); font-size:14.5px; font-weight:500; transition:.2s; white-space:nowrap; text-decoration:none; }
.nav-links a:hover,.nav-links a.active{ color:#fff; background:rgba(255,255,255,.07); }
.nav-cta{ display:flex; gap:10px; align-items:center; }
.btn{ display:inline-flex; align-items:center; gap:8px; font-weight:600; border-radius:12px; cursor:pointer; transition:.22s; font-size:14.5px; border:1px solid transparent; text-decoration:none; }
.btn-primary{ background:linear-gradient(135deg,var(--azure),var(--azure2)); color:#fff; padding:11px 22px; box-shadow:0 10px 26px rgba(47,107,255,.42); }
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 16px 34px rgba(47,107,255,.55); }
.btn-ghost{ background:rgba(255,255,255,.06); border-color:var(--border2); color:#fff; padding:11px 20px; }
.btn-ghost:hover{ background:rgba(255,255,255,.12); border-color:var(--gold); }
.nav-toggle{ display:none; width:42px; height:42px; border-radius:11px; border:1px solid var(--border2);
  background:rgba(255,255,255,.06); color:#fff; font-size:20px; cursor:pointer; margin-left:auto; }
@media (max-width:900px){
  .nav-links,.nav-cta{ display:none }
  .nav-toggle{ display:block }
}

/* —— 遮罩 + 抽屉（2 列功能菜单卡片） —— */
.nav-mask{ display:none; position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:1050; }
.nav-mask.show{ display:block }
.nav-drawer{ position:fixed; top:0; right:0; bottom:0; width:80%; max-width:330px; z-index:1100;
  background:rgba(7,20,46,.98); backdrop-filter:blur(16px); padding:78px 20px 26px;
  transform:translateX(100%); transition:transform .3s ease; overflow-y:auto;
  display:grid; grid-template-columns:1fr 1fr; gap:10px; align-content:start; }
.nav-drawer.open{ transform:translateX(0) }
.nav-drawer-head{ grid-column:1/-1; color:var(--gold2); font-size:13px; font-weight:700; letter-spacing:2px; padding:2px 4px 0; }
.nav-drawer a{ display:flex; align-items:center; justify-content:center; gap:6px; padding:13px 8px;
  color:var(--muted); border:1px solid var(--border); border-radius:12px; background:rgba(255,255,255,.035);
  font-size:14.5px; text-align:center; text-decoration:none; transition:.2s; }
.nav-drawer a:hover{ color:var(--gold2); border-color:rgba(212,175,55,.45); background:rgba(212,175,55,.07); }
.nav-drawer a.active{ color:var(--gold2); border-color:rgba(212,175,55,.55); background:rgba(212,175,55,.10); }
.nav-drawer a:last-child:nth-child(odd){ grid-column:1/-1 }
@media (max-width:520px){ .nav-drawer{ gap:8px } .nav-drawer a{ padding:12px 6px; font-size:13.5px; border-radius:11px } }
