/* ============================================================
       DESIGN TOKENS
    ============================================================ */
    :root {
      --color-bg:            #f0f2f5;
      --color-surface:       #ffffff;
      --color-border:        #e4e1db;
      --color-border-soft:   #ede9e2;
      --color-text-primary:  #1a1a1a;
      --color-text-secondary:#5a5752;
      --color-text-muted:    #9a948d;
      --color-accent:        #2f6de1;
      --color-green:         #1e8a5e;
      --color-featured-bg:   #f5eef4;
      --color-featured-border:#d4b0d0;
      --color-rank:          #8c1278;
      --gradient-rank:       linear-gradient(168.49deg, #8c1278 2.56%, #520060 97.93%);
      --color-cta-hover:     #b5198f;
      --color-cta-text:      #f9edd8;

      /* Landing accent — slightly different teal-indigo feel */
      --color-landing-accent: #1a56c4;
      --color-landing-bg:     #eef1f7;

      --radius-sm:   6px;
      --radius-md:   12px;
      --radius-lg:   16px;
      --radius-full: 9999px;

      --shadow-sm:       0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
      --shadow-card:     0 2px 8px rgba(0,0,0,.07), 0 1px 3px rgba(0,0,0,.04);
      --shadow-featured: 0 4px 20px rgba(81,0,68,.18), 0 1px 4px rgba(0,0,0,.06);
      --shadow-hover:    0 8px 28px rgba(0,0,0,.11), 0 2px 6px rgba(0,0,0,.06);

      --space-xs:  4px;
      --space-sm:  8px;
      --space-md:  16px;
      --space-lg:  24px;
      --space-xl:  40px;
      --space-2xl: 64px;

      --font-sans: -apple-system, BlinkMacSystemFont, 'Inter', 'Segoe UI', sans-serif;
      --font-size-xs:   11px;
      --font-size-sm:   14px;
      --font-size-base: 16px;
      --font-size-md:   18px;
      --font-size-lg:   22px;
      --font-size-xl:   28px;
      --font-size-3xl:  44px;
      --line-height-tight: 1.2;
      --line-height-body:  1.65;

      --container-max: 1100px;
      --container-pad: var(--space-lg);
    }

    /* ============================================================
       RESET
    ============================================================ */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html  { font-size: var(--font-size-base); -webkit-font-smoothing: antialiased; scroll-behavior: smooth; }
    body  { font-family: var(--font-sans); background: var(--color-bg); color: var(--color-text-primary); }
    img   { display: block; max-width: 100%; }
    a     { color: var(--color-accent); text-decoration: none; }
    a:hover { text-decoration: underline; }

    .container {
      width: 100%;
      max-width: var(--container-max);
      margin-inline: auto;
      padding-inline: var(--container-pad);
    }

    /* Shared CTA */
    .btn-cta {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 7px;
      background: var(--color-rank);
      color: var(--color-cta-text);
      font-weight: 700;
      border-radius: var(--radius-md);
      border: 2px solid #000;
      white-space: nowrap;
      text-decoration: none;
      transition: background .2s ease, transform .15s;
    }
    .btn-cta:hover { background: var(--color-cta-hover); text-decoration: none; transform: translateY(-1px); }
    .btn-cta:active { transform: translateY(0); }

    /* Stars */
    .star           { flex-shrink: 0; }
    .star--full     { color: var(--color-rank); }
    .star--half     { color: var(--color-rank); opacity: .45; }
    .star--empty    { color: #d0d0e0; }

    /* Section heading pattern */
    .section-label {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: .1em;
      text-transform: uppercase;
      color: var(--color-rank);
      margin-bottom: var(--space-sm);
    }
    .section-label::before {
      content: '';
      display: inline-block;
      width: 18px;
      height: 2px;
      background: var(--color-rank);
      border-radius: 2px;
    }