/* roulang page: index */
:root {
      --primary-color: #0052D9;
      --primary-hover: #003cab;
      --signal-cyan: #00A3C4;
      --accent-orange: #FF6B35;
      --bg-surface: #F4F6F9;
      --text-main: #0F172A;
      --text-muted: #334155;
      --text-sub: #64748B;
      --border-color: #E2E8F0;
      --card-shadow: 0 4px 20px -2px rgba(15, 23, 42, 0.05);
      --card-shadow-hover: 0 12px 28px -4px rgba(0, 82, 217, 0.12);
    }
    html {
      scroll-behavior: smooth;
    }
    body {
      background-color: var(--bg-surface);
      color: var(--text-main);
      font-feature-settings: 'cv02', 'cv03', 'cv04', 'cv11';
    }
    .custom-card {
      background-color: #ffffff;
      border: 1px solid var(--border-color);
      box-shadow: var(--card-shadow);
      transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
    }
    .custom-card:hover {
      box-shadow: var(--card-shadow-hover);
      border-color: #bfdbfe;
      transform: translateY(-2px);
    }
    .pulse-dot {
      display: inline-block;
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background-color: #10B981;
      box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7);
      animation: pulseAnimation 2s infinite;
    }
    @keyframes pulseAnimation {
      0% {
        transform: scale(0.95);
        box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7);
      }
      70% {
        transform: scale(1);
        box-shadow: 0 0 0 8px rgba(16, 185, 129, 0);
      }
      100% {
        transform: scale(0.95);
        box-shadow: 0 0 0 0 rgba(16, 185, 129, 0);
      }
    }
