/* roulang page: index */
:root {
            --bg-base: #090B0E;
            --bg-surface: #11151B;
            --bg-card: #181D24;
            --border-line: #262D37;
            --accent: #10B981;
            --text-main: #FFFFFF;
            --text-muted: #9CA3AF;
        }
        body {
            background-color: var(--bg-base);
            color: var(--text-main);
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
            letter-spacing: -0.015em;
        }
        .code-font {
            font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
        }
        .custom-card {
            background-color: var(--bg-card);
            border: 1px solid var(--border-line);
            border-radius: 8px;
            box-shadow: 0 4px 20px -2px rgba(0, 0, 0, 0.5);
            transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
        }
        .custom-card:hover {
            transform: translateY(-2px);
            border-color: rgba(16, 185, 129, 0.4);
            box-shadow: 0 8px 30px -4px rgba(0, 0, 0, 0.7);
        }
        .btn-emerald {
            background-color: var(--accent);
            color: #090B0E;
            font-weight: 600;
            border-radius: 6px;
            transition: all 0.2s ease;
        }
        .btn-emerald:hover {
            background-color: #059669;
            box-shadow: 0 0 16px rgba(16, 185, 129, 0.35);
        }
        .btn-subtle {
            background-color: rgba(255, 255, 255, 0.05);
            color: #FFFFFF;
            border: 1px solid var(--border-line);
            border-radius: 6px;
            transition: all 0.2s ease;
        }
        .btn-subtle:hover {
            background-color: rgba(255, 255, 255, 0.1);
            border-color: #4B5563;
        }
        .pulse-dot {
            display: inline-block;
            width: 8px;
            height: 8px;
            border-radius: 50%;
            background-color: #10B981;
            box-shadow: 0 0 8px #10B981;
            animation: pulse-glow 2s infinite ease-in-out;
        }
        @keyframes pulse-glow {
            0%, 100% { opacity: 1; transform: scale(1); }
            50% { opacity: 0.5; transform: scale(0.85); }
        }

/* roulang page: category1 */
:root {
      --bg-base: #090B0E;
      --bg-surface: #11151B;
      --bg-card: #181D24;
      --border-line: #262D37;
      --accent: #10B981;
      --text-main: #FFFFFF;
      --text-muted: #9CA3AF;
    }
    body {
      background-color: var(--bg-base);
      color: var(--text-main);
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
      letter-spacing: -0.015em;
    }
    .code-font {
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    }
    .custom-card {
      background-color: var(--bg-card);
      border: 1px solid var(--border-line);
      border-radius: 8px;
      box-shadow: 0 4px 20px -2px rgba(0, 0, 0, 0.5);
      transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
    }
    .custom-card:hover {
      transform: translateY(-2px);
      border-color: rgba(16, 185, 129, 0.4);
      box-shadow: 0 8px 30px -4px rgba(0, 0, 0, 0.7);
    }
    .btn-emerald {
      background-color: var(--accent);
      color: #090B0E;
      font-weight: 600;
      border-radius: 6px;
      transition: all 0.2s ease;
      display: inline-flex;
      align-items: center;
      justify-content: center;
    }
    .btn-emerald:hover {
      background-color: #059669;
      box-shadow: 0 0 16px rgba(16, 185, 129, 0.35);
    }
    .btn-subtle {
      background-color: rgba(255, 255, 255, 0.05);
      color: #FFFFFF;
      border: 1px solid var(--border-line);
      border-radius: 6px;
      transition: all 0.2s ease;
      display: inline-flex;
      align-items: center;
      justify-content: center;
    }
    .btn-subtle:hover {
      background-color: rgba(255, 255, 255, 0.1);
      border-color: #4B5563;
    }
    .glass-header {
      background-color: rgba(9, 11, 14, 0.85);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
    }
    details > summary {
      list-style: none;
    }
    details > summary::-webkit-details-marker {
      display: none;
    }
    .tag-badge {
      font-size: 11px;
      line-height: 1;
      padding: 4px 8px;
      border-radius: 4px;
      border: 1px solid var(--border-line);
      background-color: rgba(255, 255, 255, 0.03);
    }

/* roulang page: category2 */
:root {
      --bg-base: #090B0E;
      --bg-surface: #11151B;
      --bg-card: #181D24;
      --border-line: #262D37;
      --accent: #10B981;
      --text-main: #FFFFFF;
      --text-muted: #9CA3AF;
    }
    body {
      background-color: var(--bg-base);
      color: var(--text-main);
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
      letter-spacing: -0.015em;
    }
    .code-font {
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    }
    .custom-card {
      background-color: var(--bg-card);
      border: 1px solid var(--border-line);
      border-radius: 8px;
      box-shadow: 0 4px 20px -2px rgba(0, 0, 0, 0.5);
      transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
    }
    .custom-card:hover {
      transform: translateY(-2px);
      border-color: rgba(16, 185, 129, 0.4);
      box-shadow: 0 8px 30px -4px rgba(0, 0, 0, 0.7);
    }
    .btn-emerald {
      background-color: var(--accent);
      color: #090B0E;
      font-weight: 600;
      border-radius: 6px;
      transition: all 0.2s ease;
    }
    .btn-emerald:hover {
      background-color: #059669;
      box-shadow: 0 0 16px rgba(16, 185, 129, 0.35);
    }
    .btn-subtle {
      background-color: rgba(255, 255, 255, 0.05);
      color: #FFFFFF;
      border: 1px solid var(--border-line);
      border-radius: 6px;
      transition: all 0.2s ease;
    }
    .btn-subtle:hover {
      background-color: rgba(255, 255, 255, 0.1);
      border-color: #4B5563;
    }

/* roulang page: category4 */
:root {
      --bg-base: #090B0E;
      --bg-surface: #11151B;
      --bg-card: #181D24;
      --border-line: #262D37;
      --accent: #10B981;
      --text-main: #FFFFFF;
      --text-muted: #9CA3AF;
    }
    body {
      background-color: var(--bg-base);
      color: var(--text-main);
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
      letter-spacing: -0.015em;
    }
    .code-font {
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    }
    .custom-card {
      background-color: var(--bg-card);
      border: 1px solid var(--border-line);
      border-radius: 8px;
      box-shadow: 0 4px 20px -2px rgba(0, 0, 0, 0.5);
      transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
    }
    .custom-card:hover {
      transform: translateY(-2px);
      border-color: rgba(16, 185, 129, 0.4);
      box-shadow: 0 8px 30px -4px rgba(0, 0, 0, 0.7);
    }
    .btn-emerald {
      background-color: var(--accent);
      color: #090B0E;
      font-weight: 600;
      border-radius: 6px;
      transition: all 0.2s ease;
      display: inline-flex;
      align-items: center;
      justify-content: center;
    }
    .btn-emerald:hover {
      background-color: #059669;
      box-shadow: 0 0 16px rgba(16, 185, 129, 0.35);
    }
    .btn-subtle {
      background-color: rgba(255, 255, 255, 0.05);
      color: #FFFFFF;
      border: 1px solid var(--border-line);
      border-radius: 6px;
      transition: all 0.2s ease;
      display: inline-flex;
      align-items: center;
      justify-content: center;
    }
    .btn-subtle:hover {
      background-color: rgba(255, 255, 255, 0.1);
      border-color: #4B5563;
    }
    .status-badge {
      display: inline-flex;
      align-items: center;
      gap: 0.375rem;
      padding: 0.25rem 0.625rem;
      border-radius: 9999px;
      font-size: 0.75rem;
      background: rgba(16, 185, 129, 0.1);
      border: 1px solid rgba(16, 185, 129, 0.25);
      color: #10B981;
    }
