
@font-face {
    font-family: "Outfit";
    src: url("../fonts/Outfit-Regular.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Outfit";
    src: url("../fonts/Outfit-Medium.ttf") format("truetype");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Outfit";
    src: url("../fonts/Outfit-SemiBold.ttf") format("truetype");
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Outfit";
    src: url("../fonts/Outfit-Bold.ttf") format("truetype");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}


/* =========================================================
   CONFIGURACIÓN GENERAL
========================================================= */

* {
    box-sizing: border-box;
}

html,
body {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
}

body {
    overflow: hidden;
    background: #ffffff;
    font-family: "Outfit", sans-serif;
}


/* =========================================================
   PANTALLA INICIAL DEL LOGO
========================================================= */

#pantallaLogo {
    position: fixed;
    top: 0;
    left: 0;

    width: 100%;
    height: 100vh;

    display: flex;
    justify-content: center;
    align-items: center;

    z-index: 9999;
    overflow: hidden;

    background:
        linear-gradient(
            120deg,
            #eefaff 0%,
            #dff4fc 35%,
            #d2eef9 65%,
            #c7e8f5 100%
        );

    background-size: 200% 200%;

    animation:
        fondoMarSuave 8s ease-in-out infinite;

    opacity: 1;
    visibility: visible;

    transition:
        opacity 1.2s ease,
        visibility 1.2s ease;
}


/* =========================================================
   ILUMINACIÓN DETRÁS DEL BARCO
========================================================= */

#pantallaLogo::before {
    content: "";

    position: absolute;

    width: 750px;
    height: 750px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(255, 255, 255, 0.90) 0%,
            rgba(255, 255, 255, 0.65) 15%,
            rgba(255, 255, 255, 0.38) 30%,
            rgba(255, 255, 255, 0.18) 48%,
            rgba(255, 255, 255, 0.06) 62%,
            transparent 75%
        );

    animation:
        luzBarco 4s ease-in-out infinite;

    pointer-events: none;

    z-index: 1;
}


/* =========================================================
   MOVIMIENTO DEL FONDO
========================================================= */

@keyframes fondoMarSuave {

    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}


/* =========================================================
   MOVIMIENTO DE LA LUZ
========================================================= */

@keyframes luzBarco {

    0% {
        transform: scale(0.80);
        opacity: 0.40;
    }

    50% {
        transform: scale(1.10);
        opacity: 0.80;
    }

    100% {
        transform: scale(0.80);
        opacity: 0.40;
    }
}


/* =========================================================
   LOGO INICIAL
========================================================= */

#logoInicial {

    position: relative;

    z-index: 2;

    width: min(420px, 65vw);

    height: auto;

    opacity: 0;

    transform-origin: center center;

    animation:
        aparecerLogo 1.5s cubic-bezier(.22, 1, .36, 1) forwards,
        balanceoBarco 4.5s ease-in-out 1.5s infinite,
        brilloBarco 3.5s ease-in-out 1.5s infinite;

    filter:
        drop-shadow(
            0 10px 18px rgba(0, 0, 0, 0.12)
        )
        drop-shadow(
            0 0 12px rgba(255, 255, 255, 0.80)
        )
        drop-shadow(
            0 0 28px rgba(255, 255, 255, 0.65)
        )
        drop-shadow(
            0 0 50px rgba(255, 255, 255, 0.35)
        );
}


/* =========================================================
   APARICIÓN DEL LOGO
========================================================= */

@keyframes aparecerLogo {

    0% {
        opacity: 0;

        transform:
            translate3d(0, 35px, 0)
            scale(0.70)
            rotate(-3deg);
    }

    45% {
        opacity: 1;

        transform:
            translate3d(0, -5px, 0)
            scale(1.03)
            rotate(2deg);
    }

    70% {
        transform:
            translate3d(0, 2px, 0)
            scale(0.99)
            rotate(-1deg);
    }

    100% {
        opacity: 1;

        transform:
            translate3d(0, 0, 0)
            scale(1)
            rotate(0deg);
    }
}


/* =========================================================
   BALANCEO DEL BARCO
========================================================= */

@keyframes balanceoBarco {

    0% {
        transform:
            translate3d(0, 0, 0)
            rotate(0deg);
    }

    12% {
        transform:
            translate3d(-3px, -2px, 0)
            rotate(-1deg);
    }

    25% {
        transform:
            translate3d(-5px, 1px, 0)
            rotate(-1.8deg);
    }

    38% {
        transform:
            translate3d(-2px, 3px, 0)
            rotate(-0.8deg);
    }

    50% {
        transform:
            translate3d(3px, 2px, 0)
            rotate(1.3deg);
    }

    63% {
        transform:
            translate3d(5px, -1px, 0)
            rotate(1.8deg);
    }

    75% {
        transform:
            translate3d(3px, -3px, 0)
            rotate(0.8deg);
    }

    88% {
        transform:
            translate3d(-2px, -1px, 0)
            rotate(-0.7deg);
    }

    100% {
        transform:
            translate3d(0, 0, 0)
            rotate(0deg);
    }
}


/* =========================================================
   BRILLO DEL BARCO
========================================================= */

@keyframes brilloBarco {

    0% {
        filter:
            drop-shadow(
                0 10px 18px rgba(0, 0, 0, 0.12)
            )
            drop-shadow(
                0 0 10px rgba(255, 255, 255, 0.55)
            )
            drop-shadow(
                0 0 25px rgba(255, 255, 255, 0.35)
            );
    }

    50% {
        filter:
            drop-shadow(
                0 10px 18px rgba(0, 0, 0, 0.08)
            )
            drop-shadow(
                0 0 18px rgba(255, 255, 255, 0.95)
            )
            drop-shadow(
                0 0 38px rgba(255, 255, 255, 0.75)
            )
            drop-shadow(
                0 0 65px rgba(255, 255, 255, 0.40)
            );
    }

    100% {
        filter:
            drop-shadow(
                0 10px 18px rgba(0, 0, 0, 0.12)
            )
            drop-shadow(
                0 0 10px rgba(255, 255, 255, 0.55)
            )
            drop-shadow(
                0 0 25px rgba(255, 255, 255, 0.35)
            );
    }
}


/* =========================================================
   OCULTAR PANTALLA DEL LOGO
========================================================= */

#pantallaLogo.ocultar {

    opacity: 0;

    visibility: hidden;

    pointer-events: none;
}


/* =========================================================
   LOGIN PRINCIPAL
========================================================= */

#loginPrincipal {

    width: 100%;
    height: 100vh;

    display: flex;

    align-items: center;
    justify-content: center;

    padding: 20px;

    background:
        linear-gradient(
            rgba(225, 245, 252, 0.05),
            rgba(225, 245, 252, 0.05)
        ),
        url("../img/portada.jpg");

    background-size: cover;

    background-position: center;

    background-repeat: no-repeat;

    opacity: 0;

    visibility: hidden;

    transform:
        translateY(25px);

    transition:
        opacity 0.8s ease,
        transform 0.8s ease,
        visibility 0.8s ease;
}


/* =========================================================
   MOSTRAR LOGIN
========================================================= */

#loginPrincipal.mostrar {

    opacity: 1;

    visibility: visible;

    transform:
        translateY(0);
}


/* =========================================================
   TARJETA DEL LOGIN
========================================================= */

.login-card {

    width: 100%;

    max-width: 430px;

    background:
        rgba(255, 255, 255, 0.22);

    border-radius: 24px;

    border:
        1px solid rgba(255, 255, 255, 0.75);

    box-shadow:
        0 20px 50px rgba(0, 40, 60, 0.22);

    backdrop-filter:
        blur(10px);

    -webkit-backdrop-filter:
        blur(10px);

    overflow: hidden;
}


/* =========================================================
   CABECERA
========================================================= */

.login-header {

    text-align: center;

    padding:
        32px
        30px
        25px;

    background:
        rgba(255, 255, 255, 0.15);

    border-bottom:
        1px solid rgba(255, 255, 255, 0.25);
}


/* =========================================================
   LOGO DEL LOGIN
========================================================= */

.login-logo {

    display: block;

    width: 190px;

    max-width: 70%;

    height: auto;

    margin:
        0 auto 18px;

    filter:
        drop-shadow(
            0 5px 10px rgba(0, 60, 80, 0.15)
        );
}


/* =========================================================
   TÍTULO
========================================================= */

.login-header h3 {

    margin: 0;

    font-family:
        "Outfit",
        sans-serif;

    font-size: 27px;

    font-weight: 700;

    color: #244b5b;

    letter-spacing: -0.3px;
}


/* =========================================================
   SUBTÍTULO
========================================================= */

.login-header p {

    margin-top: 5px;

    margin-bottom: 0;

    color: #557582;

    font-family:
        "Outfit",
        sans-serif;

    font-size: 14px;

    font-weight: 500;

    letter-spacing: 1.5px;
}


/* =========================================================
   CUERPO DEL LOGIN
========================================================= */

.login-body {

    padding: 30px;

    background:
        rgba(255, 255, 255, 0.08);
}


/* =========================================================
   LABELS
========================================================= */

.login-body .form-label {

    color: #294d5c;

    font-family:
        "Outfit",
        sans-serif;

    font-size: 14px;

    font-weight: 500;

    margin-bottom: 8px;
}


/* =========================================================
   ICONOS DE LOS LABELS
========================================================= */

.login-body .form-label i {

    color:
        rgba(254, 119, 1, 1);

    margin-right: 7px;
}


/* =========================================================
   INPUTS
========================================================= */

.login-body .form-control {

    width: 100%;

    height: 52px;

    border-radius: 13px;

    background:
        rgba(255, 255, 255, 0.78);

    border:
        1px solid rgba(255, 255, 255, 0.90);

    color:
        #294b59;

    font-family:
        "Outfit",
        sans-serif;

    font-size: 15px;

    padding:
        10px 16px;

    box-shadow:
        inset 0 1px 3px
        rgba(0, 60, 80, 0.05);

    transition:
        all 0.25s ease;
}


/* =========================================================
   PLACEHOLDER
========================================================= */

.login-body .form-control::placeholder {

    color:
        #76909b;

    opacity: 1;
}


/* =========================================================
   INPUT FOCUS
========================================================= */

.login-body .form-control:focus {

    background:
        rgba(255, 255, 255, 0.95);

    border-color:
        rgba(254, 119, 1, 0.80);

    box-shadow:
        0 0 0 4px
        rgba(254, 119, 1, 0.12);

    outline: none;
}


/* =========================================================
   BOTÓN LOGIN
========================================================= */

#btnLogin {

    width: 100%;

    height: 54px;

    border: none;

    border-radius: 13px;

    background:
        rgba(254, 119, 1, 1);

    color:
        #ffffff;

    font-family:
        "Outfit",
        sans-serif;

    font-size: 16px;

    font-weight: 600;

    letter-spacing: 0.3px;

    box-shadow:
        0 8px 22px
        rgba(254, 119, 1, 0.30);

    cursor: pointer;

    position: relative;

    overflow: hidden;

    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease,
        background 0.25s ease;
}


/* =========================================================
   BRILLO DEL BOTÓN
========================================================= */

#btnLogin::before {

    content: "";

    position: absolute;

    top: 0;

    left: -100%;

    width: 60%;

    height: 100%;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255, 255, 255, 0.35),
            transparent
        );

    transform:
        skewX(-20deg);

    transition:
        left 0.6s ease;
}


#btnLogin:hover::before {

    left: 130%;
}


/* =========================================================
   BOTÓN HOVER
========================================================= */

#btnLogin:hover {

    transform:
        translateY(-2px);

    background:
        rgba(254, 119, 1, 0.92);

    box-shadow:
        0 12px 28px
        rgba(254, 119, 1, 0.40);
}


/* =========================================================
   BOTÓN ACTIVE
========================================================= */

#btnLogin:active {

    transform:
        translateY(1px);

    box-shadow:
        0 5px 12px
        rgba(254, 119, 1, 0.25);
}


/* =========================================================
   ICONO DEL BOTÓN
========================================================= */

#btnLogin i {

    margin-right: 8px;

    font-size: 14px;

    transition:
        transform 0.25s ease;
}


#btnLogin:hover i {

    transform:
        translateX(3px);
}


/* =========================================================
   ALERTA
========================================================= */

#alerta {

    border-radius: 10px;

    font-family:
        "Outfit",
        sans-serif;

    font-size: 14px;

    margin-top: 10px;
}


/* =========================================================
   FOOTER
========================================================= */

.login-footer {

    padding:
        18px 25px;

    text-align: center;

    border-top:
        1px solid rgba(255, 255, 255, 0.25);

    color:
        #496b79;

    font-family:
        "Outfit",
        sans-serif;

    font-size: 12px;

    font-weight: 400;

    line-height: 1.5;

    background:
        rgba(255, 255, 255, 0.10);
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 576px) {

    .login-card {

        max-width: 100%;

        border-radius: 16px;
    }

    .login-header {

        padding:
            25px 20px 18px;
    }

    .login-body {

        padding:
            25px 20px;
    }

    .login-footer {

        padding:
            15px 20px;
    }

    .login-logo {

        width: 150px;
    }

    .login-header h3 {

        font-size: 21px;
    }

    #logoInicial {

        width: 75vw;
    }

    #pantallaLogo::before {

        width: 400px;

        height: 400px;
    }
}
