body {
            background: #f2f5ff;
            font-family: Arial, sans-serif;
        }

        /* ============================
           CABECERA
        ============================ */

        .game-header {
            background: linear-gradient(135deg, #6f42c1, #d63384);
            color: white;
            padding: 25px 0;
            box-shadow: 0 4px 15px rgba(0,0,0,.15);
        }

        .game-title {
            font-size: 42px;
            font-weight: 800;
            letter-spacing: 2px;
        }

        .game-subtitle {
            opacity: .85;
        }

        /* ============================
           KPI
        ============================ */

        .kpi-card {
            border: none;
            border-radius: 18px;
            padding: 20px;
            color: white;
            box-shadow: 0 5px 15px rgba(0,0,0,.10);
            height: 100%;
        }

        .kpi-icon {
            font-size: 30px;
            opacity: .9;
        }

        .kpi-value {
            font-size: 30px;
            font-weight: 800;
            margin-top: 5px;
        }

        .kpi-label {
            font-size: 13px;
            opacity: .85;
            text-transform: uppercase;
        }

        .kpi-purple {
            background: linear-gradient(135deg, #6f42c1, #8e5ed7);
        }

        .kpi-blue {
            background: linear-gradient(135deg, #0d6efd, #4dabf7);
        }

        .kpi-green {
            background: linear-gradient(135deg, #198754, #43c985);
        }

        .kpi-orange {
            background: linear-gradient(135deg, #fd7e14, #ffb347);
        }

        /* ============================
           TABLERO
        ============================ */

        .game-board {
            background: white;
            border-radius: 25px;
            padding: 25px;
            box-shadow: 0 8px 25px rgba(0,0,0,.10);
        }

        .board-title {
            font-size: 22px;
            font-weight: 700;
            color: #343a40;
        }

        .memory-grid {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 12px;
            margin-top: 20px;
        }

        /* ============================
           CARTAS
        ============================ */

        .memory-card {
            aspect-ratio: 1 / 1;
            border-radius: 18px;
            border: none;

            background: linear-gradient(
                135deg,
                #6f42c1,
                #d63384
            );

            color: white;

            display: flex;
            align-items: center;
            justify-content: center;

            font-size: 34px;
            font-weight: bold;

            box-shadow: 0 5px 10px rgba(0,0,0,.15);

            cursor: default;

            transition: transform .2s ease,
                        box-shadow .2s ease;
        }

        .memory-card:hover {
            transform: translateY(-4px);
            box-shadow: 0 8px 15px rgba(0,0,0,.20);
        }

        .memory-card.hidden-card::after {
            content: "";
            font-size: 38px;
            opacity: .8;
        }

        /* Algunas cartas descubiertas,
           solamente para mostrar el prototipo */

        .memory-card.revealed {
            background: white;
            color: #6f42c1;
            border: 3px solid #6f42c1;
        }

        .memory-card.pair {
            background: #d1e7dd;
            color: #198754;
            border: 3px solid #198754;
        }

        /* ============================
           BOTONES
        ============================ */

        .btn-new-game {
            background: linear-gradient(135deg, #ff6b6b, #ff922b);
            border: none;
            color: white;
            font-weight: 700;
            border-radius: 12px;
            padding: 12px 25px;
        }

        .btn-new-game:hover {
            color: white;
            opacity: .9;
        }

        /* ============================
           PANEL RECORDS
        ============================ */

        .records-card {
            background: white;
            border: none;
            border-radius: 20px;
            box-shadow: 0 8px 25px rgba(0,0,0,.08);
        }

        .records-title {
            font-weight: 700;
            color: #343a40;
        }

        .record-position {
            width: 35px;
            height: 35px;

            display: flex;
            align-items: center;
            justify-content: center;

            border-radius: 50%;

            font-weight: bold;
        }

        .position-1 {
            background: #ffd43b;
            color: #664d03;
        }

        .position-2 {
            background: #ced4da;
            color: #495057;
        }

        .position-3 {
            background: #e9a06a;
            color: #663c12;
        }

        .position-other {
            background: #e9ecef;
            color: #495057;
        }

        /* ============================
           PROGRESO
        ============================ */

        .progress {
            height: 10px;
            border-radius: 20px;
        }

        /* ============================
           RESPONSIVE
        ============================ */

        @media (max-width: 768px) {

            .game-title {
                font-size: 32px;
            }

            .memory-grid {
                gap: 8px;
            }

            .memory-card {
                border-radius: 12px;
                font-size: 24px;
            }

            .memory-card.hidden-card::after {
                font-size: 28px;
            }
        }