/* roulang page: index */
:root {
      --bg-dark: #0a0b10;
      --bg-deep: #12141d;
      --primary-purple: #8A2BE2;
      --accent-cyan: #00F5D4;
      --text-main: #FFFFFF;
      --text-muted: #94A3B8;
      --border-line: rgba(255, 255, 255, 0.08);
    }
    body {
      background-color: var(--bg-dark);
      color: var(--text-main);
      overflow-x: hidden;
      font-feature-settings: "cv02", "cv03", "cv04", "cv11";
    }
    .neon-border {
      border: 1px solid var(--border-line);
      box-shadow: 0 0 15px rgba(138, 43, 226, 0.08);
      transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    }
    .neon-border:hover {
      border-color: rgba(0, 245, 212, 0.4);
      box-shadow: 0 10px 25px rgba(0, 245, 212, 0.12);
      transform: translateY(-4px);
    }
    .glass-nav {
      background: rgba(10, 11, 16, 0.85);
      backdrop-filter: blur(16px);
      -webkit-backdrop-filter: blur(16px);
      border-bottom: 1px solid var(--border-line);
    }
    .text-gradient-purple {
      background: linear-gradient(135deg, #FFFFFF 20%, #C4B5FD 70%, #8A2BE2 100%);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
    }
    .text-gradient-cyan {
      background: linear-gradient(135deg, #00F5D4 0%, #7000FF 100%);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
    }
    .live-pulse {
      box-shadow: 0 0 0 0 rgba(0, 245, 212, 0.7);
      animation: pulse 1.8s infinite;
    }
    @keyframes pulse {
      0% { box-shadow: 0 0 0 0 rgba(0, 245, 212, 0.7); }
      70% { box-shadow: 0 0 0 10px rgba(0, 245, 212, 0); }
      100% { box-shadow: 0 0 0 0 rgba(0, 245, 212, 0); }
    }
    .custom-scroll::-webkit-scrollbar {
      height: 6px;
    }
    .custom-scroll::-webkit-scrollbar-track {
      background: rgba(255, 255, 255, 0.03);
    }
    .custom-scroll::-webkit-scrollbar-thumb {
      background: rgba(138, 43, 226, 0.4);
      border-radius: 4px;
    }
