    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    :root {
      --bg: #f0ede6;
      --card-bg: #faf9f6;
      --dark: #1e2520;
      --teal: #2a7c6f;
      --gold: #c9a84c;
      --olive: #7a8c4e;
      --text: #2c2c2c;
      --muted: #7a7a6e;
      --border: #e0ddd6;
      --nav-bg: #faf9f6;
    }

    body {
      font-family: 'DM Sans', sans-serif;
      background: var(--bg);
      color: var(--text);
      min-height: 100vh;
    }

    /* ── NAVBAR ── */
    nav {
      position: sticky;
      top: 0;
      z-index: 100;
      background: var(--nav-bg);
      border-bottom: 1px solid var(--border);
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 0 32px;
      height: 60px;
      box-shadow: 0 2px 12px rgba(0,0,0,.06);
    }

    .nav-brand {
      display: flex;
      align-items: center;
      gap: 10px;
    }

    .nav-logo {
      width: 34px; height: 34px;
      background: var(--teal);
      border-radius: 8px;
      display: flex; align-items: center; justify-content: center;
      color: #fff;
      font-family: 'Syne', sans-serif;
      font-weight: 800;
      font-size: 15px;
    }

    .nav-name {
      font-family: 'Syne', sans-serif;
      font-weight: 700;
      font-size: 16px;
      color: var(--dark);
    }

    .nav-links {
      display: flex;
      align-items: center;
      gap: 4px;
    }

    .nav-links a {
      text-decoration: none;
      font-size: 14px;
      font-weight: 500;
      color: var(--muted);
      padding: 6px 14px;
      border-radius: 20px;
      transition: background .2s, color .2s;
    }

    .nav-links a:hover { background: var(--border); color: var(--dark); }

    .nav-links a.active {
      background: var(--dark);
      color: #fff;
    }

    /* ── PAGE WRAPPER ── */
    .page {
      max-width: 1100px;
      margin: 0 auto;
      padding: 40px 24px 80px;
    }

    /* ── HERO BANNER ── */
    .hero {
      background: var(--dark);
      border-radius: 20px;
      padding: 48px 52px;
      margin-bottom: 32px;
      position: relative;
      overflow: hidden;
    }

    .hero::before {
      content: '';
      position: absolute;
      top: -60px; right: -60px;
      width: 260px; height: 260px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(42,124,111,.35) 0%, transparent 70%);
    }

    .hero-label {
      font-size: 11px;
      font-weight: 600;
      letter-spacing: .15em;
      text-transform: uppercase;
      color: var(--teal);
      margin-bottom: 16px;
    }

    .hero h1 {
      font-family: 'Syne', sans-serif;
      font-size: clamp(28px, 4vw, 46px);
      font-weight: 800;
      color: #fff;
      line-height: 1.1;
      max-width: 600px;
      margin-bottom: 16px;
    }

    .hero p {
      font-size: 14px;
      color: rgba(255,255,255,.55);
      max-width: 480px;
      line-height: 1.6;
    }

    /* ── TWO COLUMN GRID ── */
    .grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 20px;
    }

    @media (max-width: 700px) { .grid { grid-template-columns: 1fr; } }

    /* ── CARD ── */
    .card {
      background: var(--card-bg);
      border-radius: 16px;
      border: 1px solid var(--border);
      overflow: hidden;
    }

    .card-header {
      padding: 24px 28px 16px;
      border-bottom: 1px solid var(--border);
    }

    .card-label {
      font-size: 10px;
      font-weight: 700;
      letter-spacing: .14em;
      text-transform: uppercase;
      color: var(--teal);
      margin-bottom: 6px;
    }

    .card-title {
      font-family: 'Syne', sans-serif;
      font-size: 22px;
      font-weight: 800;
      color: var(--dark);
    }

    .card-body { padding: 0 28px 24px; }

    /* ── RANKING ROWS ── */
    .rank-row {
      display: flex;
      align-items: center;
      gap: 14px;
      padding: 18px 0;
      border-bottom: 1px solid var(--border);
    }

    .rank-row:last-child { border-bottom: none; }

    .avatar {
      width: 40px; height: 40px;
      border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      font-weight: 700;
      font-size: 13px;
      color: #fff;
      flex-shrink: 0;
    }

    .av-dark  { background: #2c3e35; }
    .av-orange{ background: #c96b2b; }
    .av-teal  { background: var(--teal); }

    .rank-info { flex: 1; }

    .rank-name {
      font-weight: 600;
      font-size: 14px;
      color: var(--dark);
      margin-bottom: 2px;
    }

    .rank-skills {
      font-size: 12px;
      color: var(--muted);
    }

    .rank-stats { text-align: right; }

    .rank-score {
      font-family: 'Syne', sans-serif;
      font-weight: 700;
      font-size: 16px;
      color: var(--dark);
    }

    .rank-contribs {
      font-size: 12px;
      color: var(--muted);
    }

    /* ── BADGE ROWS ── */
    .badge-row {
      padding: 18px 0;
      border-bottom: 1px solid var(--border);
    }

    .badge-row:last-child { border-bottom: none; }

    .badge-name {
      font-weight: 700;
      font-size: 15px;
      color: var(--dark);
      margin-bottom: 2px;
    }

    .badge-tags {
      font-size: 12px;
      color: var(--muted);
      margin-bottom: 10px;
    }

    .progress-track {
      height: 6px;
      background: var(--border);
      border-radius: 99px;
      overflow: visible;
      position: relative;
    }

    .progress-fill {
      height: 100%;
      border-radius: 99px;
      position: relative;
    }

    /* Gradient bar: gold → olive → teal */
    .bar-a { background: linear-gradient(90deg, var(--gold) 0%, var(--olive) 50%, var(--teal) 100%); width: 92%; }
    .bar-b { background: linear-gradient(90deg, var(--gold) 0%, var(--olive) 50%, var(--teal) 100%); width: 88%; }
    .bar-c { background: linear-gradient(90deg, var(--gold) 0%, var(--olive) 50%, var(--teal) 100%); width: 74%; }
