diff --git a/src/app/run/components/ProfileCard.tsx b/src/app/run/components/ProfileCard.tsx
new file mode 100644
index 0000000..d8a6f42
--- /dev/null
+++ b/src/app/run/components/ProfileCard.tsx
@@ -0,0 +1,36 @@
+import Rank from "@/components/app/Rank";
+import { Badge } from "@/components/ui/badge";
+import { Card, CardContent } from "@/components/ui/card";
+
+export default function ProfileCard({
+ user,
+}: {
+ user: { username: string; rank: number };
+}) {
+ return (
+
+
+
+
+ {/* Avatar */}
+
+

+
+
+
+
+
+
+ {/* User Info */}
+
+
{user.username}
+ WR Holder
+
+
+
+ );
+}
diff --git a/src/components/app/Rank.tsx b/src/components/app/Rank.tsx
new file mode 100644
index 0000000..0727cad
--- /dev/null
+++ b/src/components/app/Rank.tsx
@@ -0,0 +1,29 @@
+import { Trophy } from "lucide-react";
+
+export default function Rank({ rank }: { rank: number }) {
+ const getRankStyle = (rank: number) => {
+ if (rank === 1) return "rank-gold";
+ if (rank === 2) return "rank-silver";
+ if (rank === 3) return "rank-bronze";
+ return "bg-secondary text-muted-foreground";
+ };
+
+ const getRankGlow = (rank: number) => {
+ if (rank === 1) return "glow-gold";
+ if (rank === 2) return "glow-silver";
+ if (rank === 3) return "glow-bronze";
+ return "";
+ };
+
+ const isTopThree = rank <= 3;
+
+ return (
+
+ {isTopThree ? : rank}
+
+ );
+}