/* roulang page: index */
:root {
      --bg-midnight: #070B19;
      --bg-surface: rgba(17, 27, 54, 0.72);
      --bg-surface-hover: rgba(26, 41, 82, 0.85);
      --border-cyan: rgba(0, 240, 255, 0.22);
      --border-subtle: rgba(255, 255, 255, 0.08);
      --primary-cyan: #00F0FF;
      --primary-blue: #2979FF;
      --accent-amber: #FFB800;
      --text-highlight: #F1F5F9;
      --text-muted: #94A3B8;
      --text-darker: #64748B;
      --radius-card: 16px;
      --glow-cyan: 0 0 24px rgba(0, 240, 255, 0.35);
    }
    * {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }
    body {
      background-color: var(--bg-midnight);
      color: var(--text-highlight);
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
      overflow-x: hidden;
      line-height: 1.6;
    }
    .glass-panel {
      background: var(--bg-surface);
      backdrop-filter: blur(16px);
      -webkit-backdrop-filter: blur(16px);
      border: 1px solid var(--border-cyan);
      border-radius: var(--radius-card);
      box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.45);
      transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    }
    .glass-panel:hover {
      border-color: rgba(0, 240, 255, 0.45);
      box-shadow: 0 12px 36px 0 rgba(0, 240, 255, 0.12);
    }
    .btn-glow {
      background: linear-gradient(135deg, #00F0FF 0%, #2979FF 100%);
      color: #050814;
      font-weight: 700;
      box-shadow: 0 0 20px rgba(0, 240, 255, 0.4);
      transition: all 0.25s ease;
    }
    .btn-glow:hover {
      box-shadow: 0 0 32px rgba(0, 240, 255, 0.65);
      transform: translateY(-2px);
    }
    .btn-glass {
      background: rgba(255, 255, 255, 0.05);
      border: 1px solid var(--border-cyan);
      color: var(--text-highlight);
      transition: all 0.25s ease;
    }
    .btn-glass:hover {
      background: rgba(0, 240, 255, 0.12);
      border-color: var(--primary-cyan);
      transform: translateY(-2px);
    }
    .glow-title {
      text-shadow: 0 0 16px rgba(0, 240, 255, 0.25);
    }
    .timeline-line::before {
      content: '';
      position: absolute;
      left: 19px;
      top: 0;
      bottom: 0;
      width: 2px;
      background: linear-gradient(to bottom, #00F0FF, #2979FF, rgba(0, 240, 255, 0.1));
    }
    @media (max-width: 768px) {
      .timeline-line::before {
        left: 15px;
      }
    }

/* roulang page: article */
:root {
      --bg-midnight: #070B19;
      --bg-surface: rgba(17, 27, 54, 0.72);
      --bg-surface-hover: rgba(26, 41, 82, 0.85);
      --border-cyan: rgba(0, 240, 255, 0.22);
      --border-subtle: rgba(255, 255, 255, 0.08);
      --primary-cyan: #00F0FF;
      --primary-blue: #2979FF;
      --accent-amber: #FFB800;
      --text-highlight: #F1F5F9;
      --text-muted: #94A3B8;
      --text-darker: #64748B;
      --radius-card: 16px;
      --glow-cyan: 0 0 24px rgba(0, 240, 255, 0.35);
    }
    body {
      background-color: var(--bg-midnight);
      color: var(--text-highlight);
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
      overflow-x: hidden;
      line-height: 1.6;
    }
    .btn-glow {
      background: linear-gradient(135deg, #00F0FF 0%, #2979FF 100%);
      color: #050814;
      font-weight: 700;
      box-shadow: 0 0 20px rgba(0, 240, 255, 0.4);
      transition: all 0.25s ease;
    }
    .btn-glow:hover {
      box-shadow: 0 0 32px rgba(0, 240, 255, 0.65);
      transform: translateY(-2px);
    }
    .btn-glass {
      background: rgba(255, 255, 255, 0.05);
      border: 1px solid var(--border-cyan);
      color: var(--text-highlight);
      transition: all 0.25s ease;
    }
    .btn-glass:hover {
      background: rgba(0, 240, 255, 0.12);
      border-color: var(--primary-cyan);
      transform: translateY(-2px);
    }
    .glow-title {
      text-shadow: 0 0 16px rgba(0, 240, 255, 0.25);
    }
    .prose-dark {
      color: #cbd5e1;
      font-size: 1.05rem;
      line-height: 1.85;
    }
    .prose-dark p {
      margin-bottom: 1.4rem;
    }
    .prose-dark h2 {
      color: #f8fafc;
      font-size: 1.5rem;
      font-weight: 700;
      margin-top: 2.2rem;
      margin-bottom: 1rem;
      padding-left: 0.85rem;
      border-left: 4px solid var(--primary-cyan);
    }
    .prose-dark h3 {
      color: #e2e8f0;
      font-size: 1.25rem;
      font-weight: 600;
      margin-top: 1.6rem;
      margin-bottom: 0.8rem;
    }
    .prose-dark ul, .prose-dark ol {
      margin-bottom: 1.4rem;
      padding-left: 1.5rem;
    }
    .prose-dark li {
      margin-bottom: 0.5rem;
    }
    .prose-dark code {
      background: rgba(0, 240, 255, 0.08);
      color: #38bdf8;
      padding: 0.2rem 0.4rem;
      border-radius: 4px;
      font-size: 0.9em;
    }
    .prose-dark pre {
      background: #0b1120;
      border: 1px solid rgba(255, 255, 255, 0.1);
      border-radius: 8px;
      padding: 1rem;
      overflow-x: auto;
      margin-bottom: 1.5rem;
    }
    .prose-dark blockquote {
      border-left: 3px solid #2979ff;
      background: rgba(17, 27, 54, 0.6);
      padding: 0.8rem 1.2rem;
      margin: 1.5rem 0;
      border-radius: 0 8px 8px 0;
      color: #94a3b8;
    }
    .prose-dark img {
      border-radius: 12px;
      border: 1px solid rgba(0, 240, 255, 0.2);
      margin: 1.5rem 0;
      width: 100%;
      height: auto;
    }

/* roulang page: category1 */
:root {
      --bg-midnight: #070B19;
      --bg-surface: rgba(17, 27, 54, 0.72);
      --bg-surface-hover: rgba(26, 41, 82, 0.85);
      --border-cyan: rgba(0, 240, 255, 0.22);
      --border-subtle: rgba(255, 255, 255, 0.08);
      --primary-cyan: #00F0FF;
      --primary-blue: #2979FF;
      --accent-amber: #FFB800;
      --text-highlight: #F1F5F9;
      --text-muted: #94A3B8;
      --text-darker: #64748B;
      --radius-card: 16px;
      --glow-cyan: 0 0 24px rgba(0, 240, 255, 0.35);
    }
    body {
      background-color: var(--bg-midnight);
      color: var(--text-highlight);
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
      overflow-x: hidden;
      line-height: 1.6;
    }
    .btn-glow {
      background: linear-gradient(135deg, #00F0FF 0%, #2979FF 100%);
      color: #050814;
      font-weight: 700;
      box-shadow: 0 0 20px rgba(0, 240, 255, 0.4);
      transition: all 0.25s ease;
    }
    .btn-glow:hover {
      box-shadow: 0 0 32px rgba(0, 240, 255, 0.65);
      transform: translateY(-2px);
    }
    .btn-glass {
      background: rgba(255, 255, 255, 0.05);
      border: 1px solid var(--border-cyan);
      color: var(--text-highlight);
      transition: all 0.25s ease;
    }
    .btn-glass:hover {
      background: rgba(0, 240, 255, 0.12);
      border-color: var(--primary-cyan);
      transform: translateY(-2px);
    }
    .glass-card {
      background: var(--bg-surface);
      border: 1px solid var(--border-cyan);
      backdrop-filter: blur(16px);
      border-radius: var(--radius-card);
      box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37);
      transition: all 0.3s ease;
    }
    .glass-card:hover {
      border-color: rgba(0, 240, 255, 0.45);
      transform: translateY(-3px);
      box-shadow: 0 12px 36px 0 rgba(0, 240, 255, 0.15);
    }
    .gold-badge {
      background: linear-gradient(135deg, rgba(255, 184, 0, 0.15) 0%, rgba(255, 140, 0, 0.05) 100%);
      border: 1px solid rgba(255, 184, 0, 0.4);
      color: #FFC72C;
    }
