/* ============================================================
   琉星羽 · 3D 视觉语言下沉（阶段 3 · spec §8）
   原则：全站唯一 WebGL 上下文仍是 hero；本文件只做 CSS 级
   3D 视觉语言扩展（§8.1 琉光描边 + §8.2 星云微背板），
   零新增 JS、零新增 rAF、不碰 hero 渲染、严守性能预算。
   所有取值复用 tokens.css（--glow-accent / --color-border-* 等）。
   ============================================================ */

/* ---------- §8.1 琉光描边：把"指针辉光"语言补齐到下载卡 ----------
   feature-card / brand-card / open-col / .btn 已由 components.css +
   main.js 实现该语言；唯独下载卡 .dl-card 缺失，此处补齐以消
   除版块间不一致。取值完全对齐 feature-card（components.css L186）。 */
.dl-card {
  position: relative;
  overflow: hidden;            /* 裁住 ::after 辉光，不外溢 */
  transition: border-color var(--dur-base) var(--ease-out),
              box-shadow var(--dur-base) var(--ease-out);
}
.dl-card::after {
  content: "";
  position: absolute; inset: 0; border-radius: inherit;
  pointer-events: none; opacity: 0;
  /* 与 feature-card 同源：冷紫辉光核 + 透明收边 */
  background: radial-gradient(260px circle at var(--mx, 50%) var(--my, 50%),
              rgba(183, 174, 248, 0.14), transparent 45%);
  transition: opacity 0.35s var(--ease-out);
}
.dl-card:hover {
  border-color: var(--color-border-strong);
  box-shadow: var(--shadow-2), var(--glow-accent);   /* 与 feature-card:hover 一致 */
}
.dl-card:hover::after { opacity: 1; }

/* ---------- §8.1b 扩展辉光到其余版块卡片（与 feature-card 同源） ----------
   demo 的展示卡 .ia-card、capability 的 .cap-col/.cap-card、manual 的
   .mn-item 此前没有指针辉光，与 feature/brand/open 不一致。此处统一补齐。
   取值完全对齐 §8.1（冷紫辉光核 + 透明收边），复用 tokens 过渡缓动。
   注：这些类均已有 position:relative（.mn-item 另含 overflow:hidden），
   故 ::after 可安全 inset:0 描边；其既有 :hover 提升（translateY/边框）
   与本规则共存（3d-language.css 载入晚于 components.css，box-shadow 合并为带辉光）。 */
.ia-card, .cap-col, .cap-card, .mn-item {
  transition: border-color var(--dur-base) var(--ease-out),
              box-shadow var(--dur-base) var(--ease-out);
}
.ia-card { position: relative; }   /* 卡片须为定位上下文，方能正确承载 ::after 辉光 */
.ia-card::after, .cap-col::after, .cap-card::after, .mn-item::after {
  content: "";
  position: absolute; inset: 0; border-radius: inherit;
  pointer-events: none; opacity: 0;
  background: radial-gradient(260px circle at var(--mx, 50%) var(--my, 50%),
              rgba(183, 174, 248, 0.14), transparent 45%);
  transition: opacity 0.35s var(--ease-out);
}
.ia-card:hover, .cap-col:hover, .cap-card:hover, .mn-item:hover {
  border-color: var(--color-border-strong);
  box-shadow: var(--shadow-2), var(--glow-accent);
}
.ia-card:hover::after, .cap-col:hover::after, .cap-card:hover::after, .mn-item:hover::after { opacity: 1; }

/* ---------- §8.2 星云微背板：section 级低密度星云采样 ----------
   用于 #features / #game / #capability / #brand 四个"内容主角"版块，
   作为 hero 星云母题的呼应（#demo/#manual/#support 保持现状，避免满屏紫）。
   三层径向渐变峰 α≈0.14，整层 opacity 0.55 → 叠乘后整体
   <0.2（spec §8.2 铁律：禁止满血星云堆叠）。静态、零动画、零重绘，
   性能开销可忽略；T3 未来可加极慢 opacity 呼吸（此处留注释，不开启）。 */
#features, #game, #capability, #brand { position: relative; isolation: isolate; }
#features > .container, #game > .container, #capability > .container, #brand > .container { position: relative; z-index: 1; }
#features::before, #game::before, #capability::before, #brand::before {
  content: "";
  position: absolute; inset: 0; z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(58% 50% at 14% 88%, rgba(50, 109, 173, 0.16), transparent 70%),  /* 钢蓝·纵深 */
    radial-gradient(46% 42% at 88% 12%, rgba(217, 180, 92, 0.12), transparent 72%),  /* 金·一抹 */
    radial-gradient(72% 64% at 50% 52%, rgba(143, 131, 240, 0.14), transparent 75%); /* 紫·主色 */
  opacity: 0.55;
  filter: blur(10px);
}

/* ---------- §8.4 性能预算 / a11y ----------
   reduced-motion：辉光为 hover（用户主动态）保留，但去除过渡时长，
   避免"动效"观感；星云背板本就静态，无需处理。 */
@media (prefers-reduced-motion: reduce) {
  .dl-card,
  .dl-card::after,
  .ia-card, .cap-col, .cap-card, .mn-item,
  .ia-card::after, .cap-col::after, .cap-card::after, .mn-item::after { transition: none; }
}

/* ---------- 三语同构铁律 ----------
   本文件不写任何语种相关规则；zh/en/ja 三页共用同一份，
   仅由 <html lang> 切换字体栈（tokens.css），3D 语言零漂移。 */
