/* roulang page: index */
:root {
      --bg-dark: #0B0D10;
      --panel-dark: #12161D;
      --line-color: rgba(255, 255, 255, 0.08);
      --accent-cyan: #00D2B4;
      --accent-blue: #0A84FF;
    }
    body {
      background-color: var(--bg-dark);
      color: #E2E8F0;
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Microsoft YaHei", sans-serif;
      line-height: 1.75;
      overflow-x: hidden;
    }
    .custom-border {
      border: 1px solid var(--line-color);
    }
    .tech-card {
      transition: transform 0.25s ease-out, box-shadow 0.25s ease-out, border-color 0.25s ease-out;
    }
    .tech-card:hover {
      transform: translateY(-4px);
      box-shadow: 0 16px 32px -8px rgba(0, 0, 0, 0.5);
      border-color: rgba(0, 210, 180, 0.35);
    }
    .radar-pulse {
      position: relative;
    }
    .radar-pulse::after {
      content: '';
      position: absolute;
      inset: -4px;
      border: 1px solid var(--accent-cyan);
      border-radius: 9999px;
      animation: pulse 2.4s infinite;
      opacity: 0;
    }
    @keyframes pulse {
      0% { transform: scale(0.95); opacity: 0.8; }
      100% { transform: scale(1.4); opacity: 0; }
    }
    details summary::-webkit-details-marker {
      display: none;
    }
