/* ── Leaderboard page-specific styles ── */

        .hof-hero {
            text-align: center;
            padding: 40px 20px 30px;
        }

        .hof-hero h1 { margin-bottom: 10px; }

        .hof-subtitle {
            font-family: var(--font-hand);
            font-size: 1.3rem;
            color: var(--ink-light);
        }

        /* ── My Stats ── */

        .stats-section {
            background: var(--paper-warm);
            border: var(--border-sketch);
            padding: 28px;
            margin-bottom: 40px;
            position: relative;
        }

        .stats-section-title {
            font-family: var(--font-body); font-weight: 700;
            font-size: 1.4rem;
            margin-bottom: 20px;
            display: flex;
            align-items: center;
            gap: 10px;
        }

        .level-hero {
            display: flex;
            align-items: center;
            gap: 24px;
            margin-bottom: 24px;
            flex-wrap: wrap;
        }

        .level-badge-giant {
            font-family: var(--font-body); font-weight: 700;
            font-size: 1.3rem;
            padding: 12px 28px;
            border: var(--border-sketch);
            border-width: 3px;
            box-shadow: var(--shadow-lift);
            white-space: nowrap;
        }

        .level-xp-block {
            flex: 1;
            min-width: 240px;
        }

        .level-xp-label {
            font-family: var(--font-hand);
            font-size: 1.1rem;
            color: var(--ink-light);
            margin-bottom: 6px;
            display: flex;
            justify-content: space-between;
        }

        .xp-bar-track {
            height: 18px;
            background: var(--paper-alt);
            border: var(--border-sketch);
            border-radius: 2px;
            overflow: hidden;
        }

        .xp-bar-fill {
            height: 100%;
            background: var(--accent-gold);
            border-radius: 2px;
            width: 0%;
            transition: width 1.2s cubic-bezier(0.22, 1, 0.36, 1);
            position: relative;
            overflow: hidden;
        }

        .xp-bar-fill::after {
            content: '';
            position: absolute;
            inset: 0;
            background: repeating-linear-gradient(
                -45deg,
                transparent,
                transparent 6px,
                rgba(255,255,255,0.15) 6px,
                rgba(255,255,255,0.15) 12px
            );
            animation: stripe-slide 1s linear infinite;
        }

        @keyframes stripe-slide {
            0%   { background-position: 0 0; }
            100% { background-position: 24px 0; }
        }

        .stats-metrics {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
            gap: 12px;
        }

        .stat-tile {
            border: var(--border-sketch);
            padding: 16px;
            text-align: center;
            background: var(--paper);
        }

        .stat-tile .stat-val {
            font-family: var(--font-body); font-weight: 700;
            font-size: 1.8rem;
            display: block;
            color: var(--ink);
        }

        .stat-tile .stat-val.gold { color: var(--accent-gold); }
        .stat-tile .stat-val.red  { color: var(--accent-red); }

        .stat-tile .stat-lbl {
            font-family: var(--font-hand);
            font-size: 0.95rem;
            color: var(--ink-faint);
        }

        /* ── Leaderboard ── */

        .lb-section {
            margin-bottom: 48px;
        }

        .lb-section-title {
            font-family: var(--font-body); font-weight: 700;
            font-size: 1.4rem;
            margin-bottom: 16px;
            display: flex;
            align-items: center;
            gap: 10px;
        }

        .lb-table-wrap {
            border: var(--border-sketch);
            overflow: hidden;
        }

        table.admin-table thead tr {
            background: var(--paper-warm);
        }

        table.admin-table th {
            cursor: default;
        }

        .lb-row-1 { background: #fffbea !important; }
        .lb-row-2 { background: #f8f8f8 !important; }
        .lb-row-3 { background: #fff5ef !important; }

        [data-theme="dark"] .lb-row-1 { background: #2a2510 !important; }
        [data-theme="dark"] .lb-row-2 { background: #222 !important; }
        [data-theme="dark"] .lb-row-3 { background: #251a10 !important; }

        .lb-rank {
            font-family: var(--font-body); font-weight: 700;
            font-size: 1.2rem;
            width: 52px;
            text-align: center;
        }

        .medal {
            display: inline-block;
            font-size: 1.4rem;
            line-height: 1;
        }

        .lb-name {
            font-family: var(--font-hand);
            font-size: 1.1rem;
            font-weight: 700;
        }

        .lb-name.is-me {
            color: var(--accent-red);
        }

        .lb-name.is-me::after {
            content: ' (you)';
            font-size: 0.85rem;
            font-weight: 400;
            color: var(--ink-faint);
        }

        .lb-xp {
            font-family: var(--font-body); font-weight: 700;
            font-size: 1.1rem;
            color: var(--accent-gold);
            white-space: nowrap;
        }

        /* ── Achievements ── */

        .ach-section { margin-bottom: 60px; }

        .ach-section-title {
            font-family: var(--font-body); font-weight: 700;
            font-size: 1.4rem;
            margin-bottom: 16px;
            display: flex;
            align-items: center;
            gap: 10px;
        }

        .ach-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
            gap: 14px;
        }

        .ach-card {
            border: var(--border-sketch);
            padding: 18px 16px;
            text-align: center;
            background: var(--paper-warm);
            transition: transform 0.15s, box-shadow 0.15s;
            position: relative;
        }

        .ach-card.earned {
            border-color: var(--accent-gold);
            background: var(--accent-gold-light);
        }

        .ach-card.earned:hover {
            transform: translate(-2px, -2px);
            box-shadow: var(--shadow-lift);
        }

        .ach-card.locked {
            opacity: 0.45;
            filter: grayscale(0.6);
        }

        .ach-icon {
            font-size: 2.4rem;
            display: block;
            margin-bottom: 8px;
            line-height: 1;
        }

        .ach-card.locked .ach-icon {
            filter: grayscale(1);
        }

        .ach-title {
            font-family: var(--font-body); font-weight: 700;
            font-size: 1rem;
            margin-bottom: 4px;
        }

        .ach-card.locked .ach-title,
        .ach-card.locked .ach-desc {
            visibility: hidden;
        }

        .ach-card.locked::after {
            content: '???';
            font-family: var(--font-body); font-weight: 700;
            font-size: 1rem;
            position: absolute;
            bottom: 32px;
            left: 0;
            right: 0;
            text-align: center;
            color: var(--ink-faint);
        }

        .ach-desc {
            font-family: var(--font-hand);
            font-size: 0.9rem;
            color: var(--ink-light);
            line-height: 1.3;
            margin-bottom: 6px;
        }

        .ach-xp {
            font-family: var(--font-hand);
            font-size: 0.85rem;
            font-weight: 700;
            color: var(--accent-gold);
        }

        .ach-date {
            font-family: var(--font-hand);
            font-size: 0.8rem;
            color: var(--ink-faint);
            margin-top: 4px;
        }

        .ach-card.earned .ach-xp-badge {
            position: absolute;
            top: 8px;
            right: 8px;
            background: var(--accent-gold);
            color: var(--ink);
            font-family: var(--font-hand);
            font-size: 0.75rem;
            font-weight: 700;
            padding: 1px 6px;
            border-radius: 1px;
        }

        /* ── Login gate ── */

        .login-gate {
            border: var(--border-sketch);
            padding: 32px 20px;
            text-align: center;
            background: var(--paper-warm);
            margin-bottom: 32px;
        }

        .login-gate p {
            font-family: var(--font-hand);
            font-size: 1.2rem;
            color: var(--ink-light);
            margin-bottom: 16px;
        }

        @media (max-width: 600px) {
            .level-hero { flex-direction: column; align-items: stretch; }
            .ach-grid { grid-template-columns: repeat(2, 1fr); }
            .stats-metrics { grid-template-columns: repeat(2, 1fr); }
            .lb-table-wrap { overflow-x: auto; }
        }
