/* =====================================================
   RESET
===================================================== */

* {

    margin: 0;
    padding: 0;

    box-sizing: border-box;

}



/* =====================================================
   BODY
===================================================== */

body {

    min-height: 100vh;

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    color: #202020;

    background: #f6f1e7;

}



/* =====================================================
   LOGIN PAGE
===================================================== */

.login-page {

    min-height: 100vh;

    width: 100%;

    display: flex;

    align-items: center;

    justify-content: center;

    padding: 30px 16px;

    position: relative;

    overflow: hidden;

}



/* =====================================================
   LUDO BACKGROUND
===================================================== */

.login-page::before {

    content: "";

    position: absolute;

    width: 430px;

    height: 430px;

    border-radius: 50%;

    background:
        #e63946;

    opacity: 0.055;

    top: -250px;

    left: -180px;

}


.login-page::after {

    content: "";

    position: absolute;

    width: 400px;

    height: 400px;

    border-radius: 50%;

    background:
        #246bfd;

    opacity: 0.055;

    bottom: -240px;

    right: -180px;

}



/* =====================================================
   LOGIN CARD
===================================================== */

.login-card {

    width: 100%;

    max-width: 455px;

    position: relative;

    z-index: 2;

    background: #ffffff;

    padding:
        42px 38px 30px;

    border-radius: 26px;

    border:
        1px solid
        #ebe5da;

    box-shadow:
        0 18px 45px
        rgba(40, 35, 25, 0.10);

}



/* =====================================================
   LUDO CORNER PIECES
===================================================== */

.login-card::before {

    content: "";

    position: absolute;

    width: 13px;

    height: 13px;

    border-radius: 50%;

    background: #e63946;

    top: 22px;

    left: 22px;

    box-shadow:

        0 0 0 5px
        rgba(230, 57, 70, 0.10);

}


.login-card::after {

    content: "";

    position: absolute;

    width: 13px;

    height: 13px;

    border-radius: 50%;

    background: #f5c542;

    top: 22px;

    right: 22px;

    box-shadow:

        0 0 0 5px
        rgba(245, 197, 66, 0.12);

}



/* =====================================================
   LOGO
===================================================== */

.login-brand {

    display: flex;

    justify-content: center;

    align-items: center;

    margin-bottom: 18px;

}


.logo-halo {

    width: 118px;

    height: 118px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 50%;

    background: #faf8f3;

    border:
        1px solid
        #eee8dc;

    box-shadow:
        0 8px 22px
        rgba(30, 30, 30, 0.08);

}


.login-logo {

    width: 102px;

    height: 102px;

    object-fit: contain;

}



/* =====================================================
   WELCOME
===================================================== */

.welcome-section {

    text-align: center;

    margin-bottom: 31px;

}


.welcome-section h1 {

    font-size: 28px;

    line-height: 1.2;

    font-weight: 800;

    color: #172033;

    letter-spacing: -0.6px;

}


.welcome-section p {

    margin-top: 9px;

    font-size: 14px;

    color: #8a8175;

    font-weight: 600;

}



/* =====================================================
   INPUT GROUP
===================================================== */

.input-group {

    margin-bottom: 19px;

}


.input-group label {

    display: block;

    margin-bottom: 8px;

    font-size: 14px;

    font-weight: 700;

    color: #28231e;

}


.input-group input {

    width: 100%;

    height: 53px;

    padding:
        0 16px;

    border:
        1px solid
        #ddd7ce;

    border-radius: 12px;

    outline: none;

    background: #faf9f6;

    color: #222;

    font-size: 16px;

    transition:
        border-color 0.2s ease,
        background 0.2s ease,
        box-shadow 0.2s ease;

}


.input-group input:hover {

    border-color: #c9c1b6;

}


.input-group input:focus {

    background: #ffffff;

    border-color: #172033;

    box-shadow:
        0 0 0 3px
        rgba(23, 32, 51, 0.08);

}


.input-group input::placeholder {

    color: #aaa39a;

}



/* =====================================================
   LOGIN BUTTON
===================================================== */

.login-btn {

    width: 100%;

    height: 55px;

    margin-top: 7px;

    padding:
        0 20px;

    border: none;

    border-radius: 13px;

    background: #172033;

    color: #ffffff;

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 12px;

    font-size: 16px;

    font-weight: 800;

    letter-spacing: 0.2px;

    cursor: pointer;

    box-shadow:
        0 8px 18px
        rgba(23, 32, 51, 0.18);

    transition:
        transform 0.15s ease,
        box-shadow 0.2s ease,
        background 0.2s ease;

}


.login-btn:hover {

    background: #222d45;

    transform:
        translateY(-2px);

    box-shadow:
        0 11px 22px
        rgba(23, 32, 51, 0.23);

}


.login-btn:active {

    transform:
        translateY(1px);

}


.login-arrow {

    font-size: 21px;

    line-height: 1;

}



/* =====================================================
   DIVIDER
===================================================== */

.divider {

    width: 100%;

    height: 1px;

    background: #ebe7df;

    margin:
        28px 0 22px;

    position: relative;

    display: flex;

    justify-content: center;

}


.divider span {

    position: absolute;

    top: 50%;

    transform:
        translateY(-50%);

    background: #ffffff;

    padding:
        0 12px;

    color: #aaa197;

    font-size: 10px;

    font-weight: 800;

    letter-spacing: 1.2px;

}



/* =====================================================
   CREATE ACCOUNT
===================================================== */

.create-account-btn {

    width: 100%;

    height: 51px;

    border:
        1.5px solid
        #d7d0c5;

    border-radius: 12px;

    background: #ffffff;

    color: #25211d;

    font-size: 15px;

    font-weight: 700;

    cursor: pointer;

    transition:
        border-color 0.2s ease,
        background 0.2s ease,
        transform 0.15s ease;

}


.create-account-btn:hover {

    border-color: #172033;

    background: #faf8f3;

    transform:
        translateY(-1px);

}



/* =====================================================
   TAGLINE
===================================================== */

.game-tagline {

    text-align: center;

    margin-top: 22px;

    font-size: 10px;

    font-weight: 800;

    letter-spacing: 2px;

    color: #b0a79c;

}



/* =====================================================
   FLASH MESSAGE
===================================================== */

.flash-container {

    position: fixed;

    top: 20px;

    left: 50%;

    transform:
        translateX(-50%);

    width:
        calc(100% - 32px);

    max-width: 455px;

    z-index: 1000;

}


.flash-message {

    width: 100%;

    padding:
        13px 16px;

    border-radius: 10px;

    text-align: center;

    font-size: 14px;

    font-weight: 600;

    box-shadow:
        0 8px 22px
        rgba(0, 0, 0, 0.10);

}


.flash-message.error {

    background: #fee2e2;

    color: #991b1b;

    border:
        1px solid
        #fecaca;

}


.flash-message.success {

    background: #dcfce7;

    color: #166534;

    border:
        1px solid
        #bbf7d0;

}



/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 480px) {

    .login-page {

        padding:
            18px 12px;

    }


    .login-card {

        padding:
            31px 20px 25px;

        border-radius: 22px;

    }


    .login-card::before {

        top: 17px;

        left: 17px;

    }


    .login-card::after {

        top: 17px;

        right: 17px;

    }


    .logo-halo {

        width: 105px;

        height: 105px;

    }


    .login-logo {

        width: 91px;

        height: 91px;

    }


    .welcome-section {

        margin-bottom: 27px;

    }


    .welcome-section h1 {

        font-size: 24px;

    }


    .welcome-section p {

        font-size: 13px;

    }


    .input-group {

        margin-bottom: 17px;

    }


    .input-group input {

        height: 52px;

    }


    .login-btn {

        height: 53px;

    }


    .create-account-btn {

        height: 50px;

    }

}



/* =====================================================
   VERY SMALL DEVICES
===================================================== */

@media (max-width: 360px) {

    .login-page {

        padding:
            12px 9px;

    }


    .login-card {

        padding:
            27px 17px 22px;

    }


    .logo-halo {

        width: 92px;

        height: 92px;

    }


    .login-logo {

        width: 80px;

        height: 80px;

    }


    .welcome-section h1 {

        font-size: 22px;

    }


    .welcome-section p {

        font-size: 12px;

    }

}