        .ranking-section {
            padding: 60px 20px 80px;
            max-width: 860px;
            margin: 0 auto;
        }

        .ranking-title {
            font-family: 'DM Sans', sans-serif;
            font-size: 2.5rem;
            font-weight: 900;
            color: black;
            text-align: center;
            margin-bottom: 8px;
            text-transform: uppercase;
            letter-spacing: 2px;
        }

        .ranking-subtitle {
            font-family: 'DM Sans', sans-serif;
            text-align: center;
            color: #aaa;
            font-size: 0.95rem;
            margin-bottom: 48px;
        }

        .podium {
            display: flex;
            justify-content: center;
            align-items: flex-end;
            gap: 16px;
            margin-bottom: 48px;
        }

        .podium-card {
            background: white;
            border: 4px solid black;
            padding: 20px 18px 16px;
            text-align: center;
            font-family: 'DM Sans', sans-serif;
            position: relative;
            transition: transform 0.2s, box-shadow 0.2s;
            cursor: default;
        }

        .podium-card:hover { transform: translate(-3px, -3px); }

        .podium-card.rank-1 { width: 210px; box-shadow: 10px 10px 0px #c8a96e; order: 2; padding-top: 28px; }
        .podium-card.rank-1:hover { box-shadow: 14px 14px 0px #c8a96e; }
        .podium-card.rank-2 { width: 180px; box-shadow: 8px 8px 0px #6eb5c8; order: 1; }
        .podium-card.rank-2:hover { box-shadow: 12px 12px 0px #6eb5c8; }
        .podium-card.rank-3 { width: 180px; box-shadow: 8px 8px 0px #c86e9a; order: 3; }
        .podium-card.rank-3:hover { box-shadow: 12px 12px 0px #c86e9a; }

        .podium-medal { font-size: 2rem; margin-bottom: 6px; }
        .podium-pos {
            font-family: 'DM Sans', sans-serif;
            font-size: 0.75rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 2px;
            color: #888;
            margin-bottom: 4px;
        }
        .podium-name {
            font-family: 'DM Sans', sans-serif;
            font-size: 1.05rem;
            font-weight: 700;
            color: #111;
            margin-bottom: 10px;
            word-break: break-word;
        }
        .podium-pts { font-size: 1.5rem; font-weight: 700; color: #111; margin-bottom: 10px; }
        .podium-pts span { font-size: 0.75rem; font-weight: 400; color: #888; }

        .pts-bar-wrap { width: 100%; background: #e5e5e5; border: 2px solid black; height: 10px; overflow: hidden; }
        .pts-bar { height: 100%; background: #22c55e; width: 0%; transition: width 1s cubic-bezier(0.4, 0, 0.2, 1); }

        .ranking-table { width: 100%; border-collapse: collapse; font-family: 'DM Sans', sans-serif; }
        .ranking-table thead tr { background: black; color: white; }
        .ranking-table thead th {
            padding: 12px 16px;
            font-size: 0.78rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 1.5px;
            text-align: left;
        }
        .ranking-table thead th:last-child { text-align: right; }
        .ranking-table tbody tr { background: white; border-bottom: 3px solid black; transition: transform 0.15s, box-shadow 0.15s; }
        .ranking-table tbody tr:hover { transform: translateX(-4px); box-shadow: 6px 0 0 #22c55e; }
        .ranking-table td { padding: 14px 16px; vertical-align: middle; }

        .rank-num { font-family: 'Playfair Display', serif; font-size: 1.1rem; font-weight: 700; color: #111; width: 40px; }
        .player-name { font-weight: 600; color: #111; font-size: 0.95rem; }
        .bar-cell { width: 45%; }

        .table-bar-wrap { width: 100%; background: #e5e5e5; border: 2px solid black; height: 14px; overflow: hidden; }
        .table-bar { height: 100%; background: #22c55e; width: 0%; transition: width 1s cubic-bezier(0.4, 0, 0.2, 1); }

        .pts-value { font-weight: 700; font-size: 0.95rem; color: #111; text-align: right; white-space: nowrap; }

        .empty-state {
            text-align: center;
            padding: 40px 20px;
            font-family: 'DM Sans', sans-serif;
            color: #888;
            font-size: 0.9rem;
            border: 3px dashed #555;
            margin-bottom: 0;
        }

        @media (max-width: 640px) {
            .podium { flex-direction: column; align-items: center; }
            .podium-card { width: 100% !important; order: unset !important; }
            .ranking-title { font-size: 1.8rem; }
        }
