/* roulang page: index */
:root {
      --primary-from: #4F46E5;
      --primary-to: #06B6D4;
      --accent: #F97316;
      --dark-slate: #0F172A;
      --card-bg: #FFFFFF;
      --text-main: #0F172A;
      --text-sub: #334155;
      --text-muted: #64748B;
    }
    body {
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
      color: var(--text-sub);
      background-color: #F8FAFC;
      line-height: 1.6;
    }
    .gradient-brand {
      background: linear-gradient(135deg, var(--primary-from) 0%, var(--primary-to) 100%);
    }
    .gradient-dark {
      background: linear-gradient(145deg, #0F172A 0%, #1E1B4B 100%);
    }
    .gradient-accent {
      background: linear-gradient(135deg, #F97316 0%, #FB923C 100%);
    }
    .text-gradient {
      background: linear-gradient(135deg, #4F46E5 0%, #06B6D4 100%);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
    }
    .card-shadow {
      box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.07);
      transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    }
    .card-shadow:hover {
      transform: translateY(-4px);
      box-shadow: 0 25px 50px -12px rgba(79, 70, 229, 0.15);
    }
    .ticket-edge {
      position: relative;
      background: radial-gradient(circle at 0 50%, transparent 12px, #ffffff 13px) top left,
                  radial-gradient(circle at 100% 50%, transparent 12px, #ffffff 13px) top right;
      background-size: 100% 100%;
    }
    .hero-pattern {
      background-image: radial-gradient(rgba(79, 70, 229, 0.12) 1px, transparent 1px);
      background-size: 24px 24px;
    }
    .accordion-content {
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.35s ease-out;
    }
    .accordion-content.open {
      max-height: 380px;
    }
