/* ==========================================================
   PACEMACE LOGIN UI
   STAGE 1.1 - FOUNDATION
   ========================================================== */

/* ==========================================================
   ROOT VARIABLES
   ========================================================== */

:root{

    --primary:#2F6BFF;
    --primary-dark:#1E4FD8;
    --secondary:#FFD54F;

    --dark:#17315F;
    --text:#56657F;
    --text-light:#8C98AC;

    --white:#ffffff;

    --bg:#EDF3FB;

    --border:#DCE5F2;

    --shadow:
        0 25px 80px rgba(17,44,91,.12);

    --shadow-hover:
        0 35px 90px rgba(17,44,91,.18);

    --radius-xl:38px;
    --radius-lg:24px;
    --radius-md:18px;
    --radius-sm:14px;

    --transition:.35s ease;

}

/* ==========================================================
   RESET
   ========================================================== */

*,
*::before,
*::after{

    margin:0;
    padding:0;
    box-sizing:border-box;

}

html{

    scroll-behavior:smooth;

}

body{

    font-family:'Poppins',sans-serif;

    background:var(--bg);

    color:var(--dark);

    overflow:hidden;

    height:100vh;

}

img{

    max-width:100%;
    display:block;

}

a{

    text-decoration:none;

    transition:var(--transition);

}

button{

    transition:var(--transition);

}

/* ==========================================================
   MAIN WRAPPER
   ========================================================== */

.auth-wrapper{

    width:100%;

    height:100vh;

    display:flex;

    overflow:hidden;

}

/* ==========================================================
   HERO SECTION
   ========================================================== */

.hero-side{

    width:66.666%;
    height: 100vh;

    position:relative;

    overflow:hidden;

    color:white;

}

.hero-slider{

    position:absolute;

    inset:0;

    background-size:cover;

    background-position:center;

    background-repeat:no-repeat;

    animation:

        heroSlider 24s infinite,

        heroZoom 24s infinite;

}

/* ==========================================================
   HERO IMAGE SLIDER
   ========================================================== */

@keyframes heroSlider{

    0%,30%{

        background-image:url("../images/auth/sd.jpg");

    }

    33%,63%{

        background-image:url("../images/auth/mpp.jpeg");

    }

    66%,100%{

        background-image:url("../images/auth/night.png");

    }

}

/* ==========================================================
   KEN BURNS EFFECT
   ========================================================== */

@keyframes heroZoom{

    0%{

        transform:scale(1);

    }

    50%{

        transform:scale(1.08);

    }

    100%{

        transform:scale(1);

    }

}

/* ==========================================================
   OVERLAY
   ========================================================== */

.hero-overlay{

    position:absolute;

    inset:0;

    background:

    linear-gradient(

        115deg,

        rgba(6,28,78,.92),

        rgba(17,74,168,.65),

        rgba(0,0,0,.18)

    );

}

/* ==========================================================
   DECORATION
   ========================================================== */

.wave-top{

    position:absolute;

    top:0;

    right:0;

    width:380px;

    height:220px;

    background:

    radial-gradient(circle at top right,#FFD54F,transparent 55%),

    radial-gradient(circle at top right,#3F7FFF,transparent 78%);

    opacity:.85;

    filter:blur(10px);

}

.wave-bottom{

    position:absolute;

    left:-120px;

    bottom:-120px;

    width:480px;

    height:480px;

    border-radius:50%;

    background:

    linear-gradient(

        135deg,

        #1565FF,

        #0B2B7D

    );

    opacity:.45;

}

/* ==========================================================
   FLOATING CIRCLES
   ========================================================== */

.circle1{

    position:absolute;

    top:90px;

    right:140px;

    width:180px;

    height:180px;

    border-radius:50%;

    background:

        rgba(255,255,255,.08);

    backdrop-filter:blur(6px);

    animation:float1 8s infinite;

}

.circle2{

    position:absolute;

    right:240px;

    bottom:170px;

    width:75px;

    height:75px;

    border-radius:50%;

    background:

        rgba(255,255,255,.14);

    animation:float2 10s infinite;

}

@keyframes float1{

    50%{

        transform:translateY(-25px);

    }

}

@keyframes float2{

    50%{

        transform:translateY(18px);

    }

}

/* ==========================================================
   HERO CONTENT
   ========================================================== */

.hero-content{

    position:relative;

    z-index:5;

    height:100%;

    display:flex;

    flex-direction:column;

    padding:60px;

}

/* ==========================================================
   HERO HEADER
   ========================================================== */

.hero-header{

    display:flex;

    align-items:center;

    gap:18px;

}

.hero-header img{

    width:480px;

}

.hero-brand{

    display:flex;

    flex-direction:column;

}

.hero-brand h4{

    font-size:24px;

    font-weight:700;

    margin:0;

}

.hero-brand span{

    font-size:14px;

    opacity:.9;

}

/* ==========================================================
   HERO TITLE
   ========================================================== */

.hero-center{

    flex:1;

    display:flex;

    justify-content:center;

    flex-direction:column;

    max-width:720px;

}

.hero-center h1{

    font-size:64px;

    line-height:68px;

    font-weight:800;

    letter-spacing:1px;

    margin-bottom:25px;

    text-transform:uppercase;

}

.hero-center p{

    max-width:580px;

    font-size:21px;

    line-height:36px;

    opacity:.95;

}

/* ==========================================================
   LOGIN SIDE
========================================================== */

.login-side{

    width:33.334%;

    min-width:450px;
    max-width:560px;

    position:relative;

    display:flex;
    justify-content:center;
    align-items:center;

    padding:45px;

    background:
        url("../images/back-log.webp")
        center center/cover no-repeat;

}

.login-side::before{

    content:"";
    position:absolute;
    inset:0;
    background:
        rgba(255, 255, 255, 0);
}

/* ==========================================================
   LOGIN CARD
========================================================== */

.login-card{

    position:relative;

    z-index:5;

    width:100%;

    background:#ffffff61;

    border-radius:38px;

    padding:45px;

    overflow:hidden;

    box-shadow:var(--shadow);

    transition:var(--transition);

    animation:fadeUp .7s ease;

}

.login-card:hover{

    transform:translateY(-5px);

    box-shadow:var(--shadow-hover);

}

/* background decoration */

.login-card::before{

    content:"";

    position:absolute;

    width:220px;
    height:220px;

    right:-90px;
    top:-90px;

    border-radius:50%;

    background:

    rgba(47,107,255,.06);

}

.login-card::after{

    content:"";

    position:absolute;

    width:180px;
    height:180px;

    left:-80px;
    bottom:-80px;

    border-radius:50%;

    background:

    rgba(255,213,79,.10);

}

/* ==========================================================
   LOGIN HEADER
========================================================== */

.login-header{
    position:relative;
    z-index:3;
    text-align:center;
}

.login-header img{
    width:260px;
    margin:auto;
}

.login-header h2{

    margin-top:25px;

    color:var(--dark);

    font-size:30px;

    font-weight:700;

}

.login-header p{

    margin-top:8px;

    color:var(--text);

    line-height:28px;

}

/* ==========================================================
   FORM
========================================================== */

.form-label{

    color:var(--dark);

    font-weight:600;

    margin-bottom:8px;

}

.form-control{

    height:58px;

    border:1px solid var(--border);

    border-right:none;

    border-radius:16px 0 0 16px;

    font-size:15px;

    padding-left:18px;

    box-shadow:none;

    transition:.25s;

}

.form-control:focus{

    border-color:var(--primary);

    box-shadow:

    0 0 0 4px rgba(47,107,255,.12);

}

/*==================================================
INPUT MODERN
==================================================*/

.input-modern{

    position:relative;

}

.input-modern .form-control{

    height:58px;

    border:1px solid #d8e3ef;

    border-radius:18px;

    background:#fff;

    padding-left:56px;

    padding-right:56px;

    font-size:15px;

    transition:.30s;

    box-shadow:none;

}

.input-modern .form-control::placeholder{

    color:#9aa6bb;

}

.input-modern .form-control:focus{

    border-color:#2F6BFF;

    box-shadow:

        0 0 0 4px rgba(47,107,255,.12);

}

/*==================================================
LEFT ICON
==================================================*/

.input-icon{

    position:absolute;

    left:18px;

    top:50%;

    transform:translateY(-50%);

    font-size:21px;

    color:#8d99ae;

    z-index:5;

    transition:.3s;

}

.input-modern:focus-within .input-icon{

    color:#2F6BFF;

}

/*==================================================
PASSWORD ICON
==================================================*/

.password-toggle{

    position:absolute;

    right:18px;

    top:50%;

    transform:translateY(-50%);

    font-size:21px;

    color:#8d99ae;

    cursor:pointer;

    transition:.3s;

}

.password-toggle:hover{

    color:#2F6BFF;

}

/*==================================================
BUTTON
==================================================*/

.login-action{

    display:flex;

    gap:15px;

    margin-top:30px;

}

.login-action .btn{

    flex:1;

    height:56px;

    border-radius:30px;

    display:flex;

    justify-content:center;

    align-items:center;

    gap:10px;

    font-weight:600;

    font-size:15px;

}

.btn-home{
    background:#ffd900;
    border:2px solid #dbe4ef;
    color:#17315F;

}

.btn-home:hover{

    background:#ff8800;

    border-color:#ff814f;

    color:#17315F;

}

.btn-login{
    border:2px solid #dbe4ef;
    color:#ffffff;
    background:#00c8ff;
}

.btn-login:hover{
    background:#1900ba;
    border-color:#6568ff;
    color:#ffffff;
}


/* ==========================================================
   FORGOT PASSWORD
========================================================== */

#btnForgot{

    color:var(--primary);

    font-size:14px;

    font-weight:600;

}

#btnForgot:hover{

    color:var(--primary-dark);

}

/* ==========================================================
   REMEMBER
========================================================== */

.login-extra{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:30px;

}

.form-check-input{

    border-radius:6px;

    width:18px;

    height:18px;

    cursor:pointer;

}

.form-check-input:checked{

    background:var(--primary);

    border-color:var(--primary);

}

.form-check-label{

    margin-left:5px;

    color:var(--text);

}

/* ==========================================================
   BUTTON
========================================================== */

.btn{

    height:54px;

    border-radius:30px;

    font-weight:700;

    transition:.35s;

}

/* ==========================================================
   ALERT
========================================================== */

.alert{

    border:none;

    border-left:4px solid;

    border-radius:15px;

    margin-bottom:22px;

    font-size:14px;

}

.alert-warning{

    border-left-color:#ffc107;

}

.alert-danger{

    border-left-color:#dc3545;

}

/* ==========================================================
   REGISTER
========================================================== */

.register-link{

    margin-top:35px;

    text-align:center;

    color:var(--text);

}

.register-link a{

    color:var(--primary);

    font-weight:700;

}

.register-link a:hover{

    color:var(--primary-dark);

}

/* ==========================================================
   FOOTER
========================================================== */

.login-footer{

    margin-top:35px;

    text-align:center;

    font-size:12px;

    line-height:22px;

    color:#8d99ae;

}

/* ==========================================================
   ANIMATION
========================================================== */

@keyframes fadeUp{

    from{

        opacity:0;

        transform:translateY(40px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

/* ==========================================================
   HERO ANIMATION
========================================================== */

.hero-center h1{

    opacity:0;
    transform:translateY(40px);

    animation:titleFade .9s ease forwards;
    animation-delay:.35s;

}

.hero-center p{

    opacity:0;
    transform:translateY(30px);

    animation:titleFade .9s ease forwards;
    animation-delay:.8s;

}

.login-card{

    animation:cardFade .8s ease;
}

@keyframes titleFade{

    from{

        opacity:0;
        transform:translateY(40px);

    }

    to{

        opacity:1;
        transform:translateY(0);

    }

}

@keyframes cardFade{

    from{

        opacity:0;
        transform:translateX(40px);

    }

    to{

        opacity:1;
        transform:translateX(0);

    }

}

/* ==========================================================
   HERO BADGE
========================================================== */

.hero-badge{

    display:inline-flex;

    align-items:center;

    gap:10px;

    padding:10px 22px;

    margin-bottom:28px;

    border-radius:40px;

    background:rgba(255,255,255,.12);

    backdrop-filter:blur(12px);

    color:#fff;

    font-size:14px;

    font-weight:500;

}

.hero-badge i{

    font-size:18px;

    color:#FFD54F;

}

/* ==========================================================
   HERO FEATURE
========================================================== */

.hero-feature{

    display:flex;

    gap:18px;

    flex-wrap:wrap;

    margin-top:35px;

}

.hero-feature div{

    display:flex;

    align-items:center;

    gap:8px;

    padding:10px 18px;

    border-radius:30px;

    background:rgba(255,255,255,.08);

    backdrop-filter:blur(10px);

    color:#fff;

    font-size:14px;

}

.hero-feature i{

    color:#FFD54F;

    font-size:18px;

}

/* ==========================================================
   GLASS CARD
========================================================== */

.commitment{

    width:100%;
    max-width:430px;

    padding:28px;

    margin-top:45px;

    border-radius:28px;

    background:rgba(255,255,255,.10);

    backdrop-filter:blur(18px);

    border:1px solid rgba(255,255,255,.18);

    box-shadow:0 18px 40px rgba(0,0,0,.18);

}

.commitment h4{

    color:#fff;

    font-size:20px;

    font-weight:700;

    margin-bottom:12px;

}

.commitment p{

    color:rgba(255,255,255,.85);

    line-height:28px;

    margin:0;

}

/* ==========================================================
   LOGO SHINE
========================================================== */

.login-header{

    position:relative;

}

.login-header::before{

    content:"";

    position:absolute;

    top:0;

    left:-130%;

    width:50%;

    height:50%;

    transform:skewX(-20deg);

    background:

    linear-gradient(

        90deg,

        transparent,

        rgba(255,255,255,.45),

        transparent

    );

    animation:shine 4.5s infinite;

}

@keyframes shine{

    100%{

        left:180%;

    }

}

/* ==========================================================
   SCROLLBAR
========================================================== */

::-webkit-scrollbar{

    width:8px;

}

::-webkit-scrollbar-thumb{

    background:#2F6BFF;

    border-radius:20px;

}

::-webkit-scrollbar-track{

    background:#EDF3FB;

}

/* ==========================================================
   DESKTOP LARGE
========================================================== */

@media (min-width:1600px){

    .hero-center{

        max-width:800px;

    }

    .hero-center h1{

        font-size:74px;

        line-height:82px;

    }

    .hero-center p{

        font-size:24px;

        line-height:40px;

    }

    .login-card{

        max-width:560px;

    }

}

/* ==========================================================
   DESKTOP
========================================================== */

@media (max-width:1400px){

    .hero-center h1{

        font-size:58px;

        line-height:64px;

    }

    .hero-content{

        padding:45px;

    }

}

/* ==========================================================
   LAPTOP
========================================================== */

@media (max-width:1200px){

    .login-side{

        min-width:420px;

        padding:30px;

    }

    .hero-center h1{

        font-size:52px;

        line-height:58px;

    }

    .hero-center p{

        font-size:18px;

    }

}

/* ==========================================================
   TABLET
========================================================== */

@media (max-width:992px){

    body{

        overflow:auto;

    }

    .auth-wrapper{

        display:block;

        height:auto;

    }

    .hero-side{

        width:100%;

        height:340px;

    }

    .hero-content{

        padding:35px;

    }

    .hero-center{

        justify-content:flex-end;

    }

    .hero-center h1{

        font-size:42px;

        line-height:48px;

    }

    .hero-center p{

        font-size:17px;

        line-height:30px;

    }

    .commitment{

        display:none;

    }

    .login-side{

        width:100%;

        max-width:100%;

        min-width:100%;

        padding:30px 20px;

    }

    .login-card{

        margin-top:-55px;

        border-radius:32px;

    }

}

/* ==========================================================
   MOBILE
========================================================== */

@media (max-width:768px){

    .hero-header{

        gap:12px;

    }

    .hero-header img{

        width:380px;

    }

    .hero-brand h4{

        font-size:20px;

    }

    .hero-center h1{

        font-size:34px;

        line-height:42px;

    }

    .hero-center p{

        font-size:15px;

        line-height:26px;

    }

    .hero-feature{

        display:none;

    }

    .hero-badge{

        font-size:13px;

        padding:8px 18px;

    }

    .login-card{

        padding:35px 25px;

    }

}

/* ==========================================================
   SMALL MOBILE
========================================================== */

@media (max-width:576px){

    .hero-side{

        height:290px;

    }

    .hero-content{

        padding:25px;

    }

    .hero-center h1{

        font-size:30px;

        line-height:36px;

    }

    .hero-center p{

        font-size:14px;

        line-height:24px;

    }

    .login-side{

        padding:15px;

    }

    .login-card{

        padding:25px 20px;

        border-radius:24px;

    }

    .btn{

        height:50px;

        font-size:14px;

    }

    .form-control{

        height:52px;

    }

}

/* ==========================================================
   PERFORMANCE
========================================================== */

.hero-slider,
.circle1,
.circle2,
.login-card,
.btn-login{

    will-change:transform;

}

.hero-slider{

    backface-visibility:hidden;

    transform:translateZ(0);

}

.login-footer{

    margin-top:35px;

    display:flex;

    justify-content:space-between;

    align-items:center;

    font-size:12px;

    color:#98a4b7;

    border-top:1px solid #edf1f6;

    padding-top:18px;

}

/*==================================
REGISTER BUTTON
==================================*/

#btnRegister{

    position:relative;

}

#btnRegister .spinner-border{

    width:16px;

    height:16px;

    border-width:2px;

    margin-left:8px;

}