* {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        html, body {
            width: 100%;
            height: 100%;
        }

        body {
            min-height: 100vh;
            min-height: 100dvh; /* usa la altura real visible en móviles (evita saltos con la barra del navegador) */
            background: #000;
            display: flex;
            justify-content: center;
            align-items: center;
            font-family: Arial, Helvetica, sans-serif;
            overflow: hidden;
            padding: 20px;
        }

        .bienvenida {
            width: 100%;
            max-width: 600px;
            text-align: center;
            animation: aparecer 1.5s ease forwards;
        }

        .titulo {
            color: white;
            font-size: clamp(22px, 6.5vw, 45px);
            font-weight: 700;
            letter-spacing: clamp(1px, 0.5vw, 3px);
            line-height: 1.3;
            text-shadow:
                0 0 10px #168cff,
                0 0 25px #168cff,
                0 0 45px #168cff;
        }

        .subtitulo {
            color: #168cff;
            font-size: clamp(12px, 2.8vw, 18px);
            margin-top: 12px;
            letter-spacing: clamp(2px, 1vw, 5px);
        }

        .contenedor-carga {
            width: min(450px, 85vw);
            height: 5px;
            background: #222;
            border-radius: 10px;
            margin: 35px auto 0;
            overflow: hidden;
            box-shadow: 0 0 10px rgba(22, 140, 255, 0.3);
        }

        .carga {
            height: 100%;
            width: 0%;
            background: linear-gradient(
                90deg,
                #0066ff,
                #00c8ff,
                #ffffff
            );
            box-shadow: 0 0 15px #168cff;
            animation: cargar 4s linear forwards;
        }

        .texto-carga {
            color: #777;
            font-size: clamp(11px, 2.2vw, 13px);
            margin-top: 12px;
            letter-spacing: 2px;
        }

        @keyframes cargar {
            from {
                width: 0%;
            }

            to {
                width: 100%;
            }
        }

        @keyframes aparecer {
            from {
                opacity: 0;
                transform: scale(0.9);
            }

            to {
                opacity: 1;
                transform: scale(1);
            }
        }

        /* Desaparece después de 4 segundos */
        @keyframes desaparecer {
            to {
                opacity: 0;
                visibility: hidden;
            }
        }

        .pantalla {
            animation: desaparecer 0.8s ease 4s forwards;
        }

        /* ---------- Ajustes para pantallas muy pequeñas (celulares chicos) ---------- */
        @media (max-width: 380px) {
            .titulo {
                letter-spacing: 1px;
            }
            .subtitulo {
                letter-spacing: 2px;
            }
        }

        /* ---------- Ajustes para celulares en horizontal (poca altura) ---------- */
        @media (max-height: 420px) {
            .titulo {
                font-size: clamp(18px, 5vw, 32px);
            }
            .subtitulo {
                margin-top: 8px;
            }
            .contenedor-carga {
                margin-top: 20px;
            }
        }
