diff --git a/css/styles.css b/css/styles.css
index 4097cf4..2bf42e5 100644
--- a/css/styles.css
+++ b/css/styles.css
@@ -86,6 +86,15 @@ a:hover { text-decoration: underline; }
.user-homepage a:hover { text-decoration: underline; }
.user-location { font-size: .85rem; color: #6b7280; margin: 4px 0 0 0; }
.user-description { font-size: .85rem; color: #4b5563; margin: 8px 0 0 0; max-height: 40px; overflow: hidden; text-overflow: ellipsis; }
+.user-posts { font-size: .75rem; color: #9ca3af; margin: 6px 0 0 0; }
+.rank-badge { font-size: .65rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; padding: 2px 8px; border-radius: 12px; white-space: nowrap; }
+.rank-rookie { background: #f3f4f6; color: #6b7280; }
+.rank-beginner { background: #d1fae5; color: #065f46; }
+.rank-member { background: #dbeafe; color: #1e40af; }
+.rank-contributor { background: #fef3c7; color: #92400e; }
+.rank-veteran { background: #ede9fe; color: #5b21b6; }
+.rank-expert { background: #fce7f3; color: #9d174d; }
+.rank-legend { background: #fef08a; color: #854d0e; }
.wiki-accordion { margin: 24px 0; }
.wiki-topic { margin-bottom: 16px; }
.wiki-topic h4 { font-size: 1.1rem; font-weight: 600; padding: 12px 16px; background: var(--gray1); border-radius: 8px; cursor: pointer; transition: background .2s; }
diff --git a/js/main.js b/js/main.js
index 3ed12ed..15397ce 100644
--- a/js/main.js
+++ b/js/main.js
@@ -244,15 +244,20 @@ async function loadUsers() {
const avatarContent = user.image
? ``
: `${(user.username || '').charAt(0).toUpperCase()}`;
+ const rank = getRank(user.posts || 0);
card.innerHTML = `