@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

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

html{
    scroll-behavior:smooth;
}

body{
    min-height:100vh;
    font-family:'Inter',sans-serif;
    color:white;
    background:#09090d;
    overflow:hidden;
}

body::before{
    content:'';
    position:fixed;
    width:760px;
    height:760px;
    top:-220px;
    left:-220px;
    z-index:-2;
    pointer-events:none;
    opacity:.35;
    background:radial-gradient(circle,#7c3aed 0%,transparent 70%);
}

body::after{
    content:'';
    position:fixed;
    width:620px;
    height:620px;
    right:-220px;
    bottom:-260px;
    z-index:-2;
    pointer-events:none;
    opacity:.18;
    background:radial-gradient(circle,#8b5cf6 0%,transparent 70%);
}

.login-shell{
    min-height:100vh;
    display:grid;
    place-items:center;
    padding:28px;
}

.login-panel{
    width:min(100%,460px);
    padding:50px;
    border-radius:32px;
    background:rgba(255,255,255,.03);
    border:1px solid rgba(124,58,237,.25);
    backdrop-filter:blur(20px);
    box-shadow:0 0 100px rgba(124,58,237,.12);
    animation:fadeUp .8s ease;
}

.brand{
    display:inline-flex;
    color:white;
    text-decoration:none;
    font-size:32px;
    font-weight:800;
    margin-bottom:34px;
    transition:.3s;
}

.brand:hover{
    color:#c4b5fd;
}

h1{
    font-size:44px;
    line-height:1;
    margin-bottom:16px;
}

p{
    color:#a1a1aa;
    line-height:1.7;
    margin-bottom:32px;
}

label{
    display:block;
    color:#c4b5fd;
    font-size:13px;
    font-weight:800;
    letter-spacing:.04em;
    text-transform:uppercase;
    margin-bottom:10px;
}

input{
    width:100%;
    height:60px;
    color:white;
    background:#111118;
    border:1px solid rgba(124,58,237,.3);
    border-radius:16px;
    padding:0 20px;
    font-size:16px;
    outline:none;
    margin-bottom:20px;
    transition:.3s;
}

input:focus{
    border-color:#7c3aed;
    box-shadow:0 0 20px rgba(124,58,237,.2);
}

button{
    width:100%;
    height:60px;
    border:0;
    border-radius:16px;
    background:#7c3aed;
    color:white;
    font-size:16px;
    font-weight:700;
    cursor:pointer;
    transition:.3s;
    box-shadow:0 0 30px rgba(124,58,237,.35);
}

button:hover{
    background:#8b5cf6;
    transform:translateY(-3px);
    box-shadow:0 0 45px rgba(124,58,237,.5);
}

button:disabled{
    opacity:.65;
    cursor:wait;
    transform:none;
}

.message{
    display:block;
    min-height:20px;
    margin-top:16px;
    color:#a1a1aa;
    font-size:14px;
}

.message.error{
    color:#fb7185;
}

@keyframes fadeUp{
    from{
        opacity:0;
        transform:translateY(30px);
    }

    to{
        opacity:1;
        transform:translateY(0);
    }
}

@media(max-width:560px){
    .login-panel{
        padding:34px;
    }

    h1{
        font-size:38px;
    }
}
