    /* Custom Cyberpunk audio player */
    .cyber-player {
      flex: 1; display: flex; align-items: center; gap: var(--space-sm);
      min-width: 0;
    }
    .cyber-player__play {
      flex-shrink: 0; width: 40px; height: 40px;
      display: flex; align-items: center; justify-content: center;
      border: 2px solid var(--cyber-red-500);
      border-radius: var(--radius-cyber);
      background: transparent; color: var(--cyber-red-500);
      font-size: var(--text-lg); cursor: pointer;
      transition: all var(--transition-fast);
      line-height: 1;
    }
    .cyber-player__play:hover {
      background: var(--cyber-red-500); color: var(--cyber-void-500);
      box-shadow: var(--glow-cyan);
    }
    .cyber-player__play:disabled {
      cursor: progress; opacity: 0.55;
      animation: player-pulse 1s ease-in-out infinite;
    }
    @keyframes player-pulse { 0%,100% { opacity: 0.35; } 50% { opacity: 0.75; } }
    @media (prefers-reduced-motion: reduce) {
      .cyber-player__play:disabled { animation: none; opacity: 0.55; }
    }
    /* 加载失败：整条置灰并加删除线，明确告知用户而不是静默无反应 */
    .audio-track-item.is-error { opacity: 0.5; border-color: var(--cyber-red-700); }
    .audio-track-item.is-error .track-name { text-decoration: line-through; }
    .cyber-player__body {
      flex: 1; display: flex; flex-direction: column;
      gap: var(--space-2xs); min-width: 0;
    }
    .cyber-player__top {
      display: flex; align-items: center; gap: var(--space-sm);
    }
    .track-num {
      font-family: var(--font-mono); font-size: var(--text-sm);
      color: var(--cyber-magenta-500); min-width: 2em; flex-shrink: 0;
    }
    /* 曲名：窄屏放不下时左右滚动（marquee），放得下则静止 */
    .track-name {
      flex: 1; min-width: 0; font-family: var(--font-mono); font-size: var(--text-sm);
      color: var(--cyber-chrome-200);
      overflow: hidden; white-space: nowrap;
      cursor: pointer;
    }
    .track-name:hover { color: var(--cyber-red-500); }
    .track-name__inner {
      display: block; white-space: nowrap;
      overflow: hidden; text-overflow: ellipsis;
    }
    .track-name.is-scrolling {
      -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 10px, #000 calc(100% - 10px), transparent 100%);
      mask-image: linear-gradient(90deg, transparent 0, #000 10px, #000 calc(100% - 10px), transparent 100%);
    }
    .track-name.is-scrolling .track-name__inner {
      overflow: visible; text-overflow: clip;
      animation: track-marquee var(--marquee-duration, 8s) linear infinite alternate;
      will-change: transform;
    }
    .track-name.is-scrolling:hover .track-name__inner { animation-play-state: paused; }
    @keyframes track-marquee {
      from { transform: translateX(0); }
      to   { transform: translateX(calc(-1 * var(--marquee-distance, 0px))); }
    }
    .cyber-player__info {
      flex-shrink: 0; width: 32px; height: 32px;
      display: flex; align-items: center; justify-content: center;
      border: 1px solid var(--color-border-default); background: transparent;
      color: var(--cyber-chrome-400); font-size: var(--text-sm);
      cursor: pointer; transition: all var(--transition-fast); line-height: 1;
    }
    .cyber-player__info:hover {
      border-color: var(--cyber-red-500); color: var(--cyber-red-500);
      box-shadow: 0 0 10px color-mix(in srgb, var(--cyber-red-500) 30%, transparent);
    }
    .cyber-player__time {
      font-family: var(--font-mono); font-size: var(--text-xs);
      color: var(--cyber-chrome-400); flex-shrink: 0;
    }
    .cyber-player__progress {
      height: 6px; background: var(--cyber-void-500);
      border: 1px solid var(--cyber-void-100);
      cursor: pointer; position: relative;
      touch-action: none; /* 支持手指拖动，禁用默认触摸滚动 */
    }
    .cyber-player__progress-fill {
      height: 100%; width: 0%;
      background: var(--cyber-red-500);
      box-shadow: 0 0 8px var(--cyber-red-500);
      transition: width 0.1s linear;
      pointer-events: none;
    }