/* ═══════════════════════════════════════════════════════════
   線稿裡「會移動」的兩個地方
   ───────────────────────────────────────────────────────────
   全站絕大多數線稿只是被畫出來（stroke-dashoffset）。
   只有這兩處另外做了位移／縮放 —— 刻意保持稀少，
   因為它們是兩個專案的收尾重拳，用多了就不值錢了。
   ═══════════════════════════════════════════════════════════ */

/* SVG 內的元素用 viewBox 座標系做變形，1px = 1 個 viewBox 單位 */
.dendrify-tree,
.desk-lift {
  transform-box: view-box;
  transform-origin: 0 0;
}

/* ── Dendrify：手機外框畫完之後，整棵樹縮小飛進手機裡 ──────
   --k 取第四段的後半段：前半畫手機，後半收樹。            */
.dendrify-tree {
  --k: clamp(0, calc(var(--s4, 0) * 2 - 1), 1);
  transform:
    translate(calc(124px * var(--k)), calc(123px * var(--k)))
    scale(calc(1 - 0.62 * var(--k)));
  /* 縮小的同時把線加粗回去，樹進到手機裡才不會變成髮絲 */
  --sw: calc(1 / (1 - 0.62 * var(--k)));
}

/* PCB 兩塊板各自縮過，線寬同樣補回來（倍率 = 1 / scale） */
.pcb-hub    { --sw: 1.136; }
.pcb-driver { --sw: 1.205; }

/* ── 升降桌：桌面連同外管一起升起，內管與腳座留在原地 ──────
   34.5 是上限，不能再往上加：外管底端（前腳 169、後腳 148）升過
   內管頂端（前腳 128、後腳 110）就會在腿中間開一個洞。
   34.5 讓前腳還疊 6.5、後腳還疊 3.5，兩邊都還接得住。 */
.desk-lift {
  transform: translateY(calc(-34.5px * var(--s4, 0)));
}

@media (prefers-reduced-motion: reduce) {
  .dendrify-tree { --k: 1; }
}
