/* ============================================================
   bg.css —「方案 F」简历站版：PCB 走线 + 三层鼠标视差
   · 深色背景由各页主题色 --accent 自动派生（color-mix），
     四份简历各用各的基础色：钴蓝 / 墨绿 / 棕铜 / 紫
   · 无调色板，配色固定跟随简历主题
   · 打印：背景整层隐藏，PDF 保持纯白 2 页 A4（配合 resume.css）
   · 需配合 bg.js（生成走线 / 测试点 / 脉冲 / 视差）
   ============================================================ */

@media screen {
  /* ---- 深色底 + 同色系提亮走线（全部由 --accent 派生） ---- */
  body {
    --bg-ink:     color-mix(in srgb, var(--accent) 38%, #fff);
    --paper:      color-mix(in srgb, var(--accent) 18%, #0a0c10);
    --g1:         color-mix(in srgb, var(--accent) 30%, #0d1016);
    --g2:         color-mix(in srgb, var(--accent) 22%, #0a0c10);
    --g3:         color-mix(in srgb, var(--accent) 10%, #06080b);
    --dots:       rgba(255,255,255,.045);
    --grid:       color-mix(in srgb, var(--bg-ink) 8%, transparent);
    --trace:      color-mix(in srgb, var(--bg-ink) 17%, transparent);
    --pad-c:      color-mix(in srgb, var(--bg-ink) 22%, transparent);
    --via-c:      color-mix(in srgb, var(--bg-ink) 25%, transparent);
    --via-dot-c:  color-mix(in srgb, var(--bg-ink) 22%, transparent);
    --mark-c:     color-mix(in srgb, var(--bg-ink) 24%, transparent);
    --mark-dot-c: color-mix(in srgb, var(--bg-ink) 28%, transparent);
    --pulse:      var(--bg-ink);
    --pulse-glow: color-mix(in srgb, var(--bg-ink) 85%, transparent);
    background-color: var(--paper);
    background-image:
      radial-gradient(circle, var(--dots) 1px, transparent 1.6px),
      linear-gradient(163deg, var(--g1) 0%, var(--g2) 52%, var(--g3) 100%);
  }

  /* ---- 三层背景：大网格(远) / PCB 走线(中) / 测试点(近) ---- */
  .bg { position: fixed; inset: -70px; z-index: 0; pointer-events: none; overflow: hidden; }
  .layer { position: absolute; inset: 0; width: 100%; height: 100%; will-change: transform; }
  .l-grid {
    background-image:
      linear-gradient(var(--grid) 1px, transparent 1px),
      linear-gradient(90deg, var(--grid) 1px, transparent 1px);
    background-size: 104px 104px;
  }
  .l-pcb .trace   { fill: none; stroke: var(--trace); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
  .l-pcb .pad     { fill: none; stroke: var(--pad-c); stroke-width: 1.4; }
  .l-pcb .via     { fill: none; stroke: var(--via-c); stroke-width: 1.4; }
  .l-pcb .via-dot { fill: var(--via-dot-c); }
  .l-pcb .pulse   { fill: var(--pulse); opacity: 0; filter: drop-shadow(0 0 6px var(--pulse-glow)); }
  .l-marks .mark  { fill: none; stroke: var(--mark-c); stroke-width: 1.2; }
  .l-marks .dot   { fill: var(--mark-dot-c); }

  /* ---- 暗角景深 ---- */
  .vignette {
    position: fixed; inset: 0; z-index: 0; pointer-events: none; opacity: .5;
    background: radial-gradient(95% 75% at 50% 30%, transparent 50%, rgba(0,0,0,.58) 100%);
  }

  /* ---- 内容压在背景之上；深底上纸面阴影加强 ---- */
  .toolbar { position: relative; z-index: 2; }
  .page {
    position: relative; z-index: 1;
    box-shadow: 0 34px 80px -30px rgba(0,0,0,.6), 0 2px 8px rgba(0,0,0,.30);
  }
  .wrap { position: relative; z-index: 1; }
}

/* ---- 打印：背景整层消失，PDF 保持纯白 A4 ---- */
@media print {
  .bg, .vignette { display: none !important; }
}
