/* roulang page: index */
:root {
      --bg-dark: #0b0f19;
      --bg-card: #111827;
      --bg-card-alt: #162033;
      --brand-blue: #0284c7;
      --brand-glow: #38bdf8;
      --accent-green: #10b981;
      --accent-warn: #f59e0b;
      --border-color: rgba(255, 255, 255, 0.08);
      --border-highlight: rgba(56, 189, 248, 0.4);
      --text-main: #f8fafc;
      --text-muted: #94a3b8;
      --text-dim: #64748b;
    }
    body {
      background-color: var(--bg-dark);
      color: var(--text-main);
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
      overflow-x: hidden;
    }
    .font-mono-numbers {
      font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
      font-variant-numeric: tabular-nums;
    }
    .glass-card {
      background: rgba(17, 24, 39, 0.85);
      backdrop-filter: blur(12px);
      border: 1px solid var(--border-color);
      box-shadow: 0 4px 20px -2px rgba(0, 0, 0, 0.5);
      transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    }
    .glass-card:hover {
      border-color: var(--border-highlight);
      transform: translateY(-2px);
      box-shadow: 0 8px 30px -4px rgba(2, 132, 199, 0.2);
    }
    .hero-bento-grid {
      display: grid;
      grid-template-columns: repeat(12, 1fr);
      gap: 1.5rem;
    }
    .pulse-dot {
      animation: pulseGlow 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
    }
    @keyframes pulseGlow {
      0%, 100% { opacity: 1; transform: scale(1); }
      50% { opacity: 0.4; transform: scale(0.9); }
    }
    details summary::-webkit-details-marker {
      display: none;
    }
