/* Tech Text —— 鼠标扫过时，文字变成虚线矢量轮廓（工程图风格）
   纯静态实现：不需要 React，不影响现有部署 */
.tt{ display:inline-block; }
.tt-c{
  position:relative; display:inline-block;
  --tt-stroke: 1.6px;
  transition: color .18s ease;
}
.tt-c > .tt-ink{ position:relative; z-index:1; }

/* 每个字下面盖一层 SVG 虚线轮廓 */
.tt-c > svg{
  position:absolute; left:0; top:0;
  width:100%; height:100%;
  overflow:visible; pointer-events:none; z-index:2;
  opacity:0; transition: opacity .22s ease;
}
.tt-c > svg text{
  fill:none;
  stroke: currentColor;
  stroke-width: var(--tt-stroke);
  stroke-linecap: round;
  stroke-dasharray: 3.2 2.6;
  paint-order: stroke;
}

/* 激活：实心字淡出，虚线轮廓淡入并跑起来 */
.tt-c.tt-on > .tt-ink{ opacity:0; transition: opacity .16s ease; }
.tt-c.tt-on > svg{ opacity:1; }
.tt-c.tt-on > svg text{ animation: tt-march 1.1s linear infinite; }

@keyframes tt-march{ to{ stroke-dashoffset: -5.8; } }

@media (prefers-reduced-motion: reduce){
  .tt-c.tt-on > svg text{ animation: none; }
}
