* {
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:'Poppins', sans-serif;
}

body {
    height:100vh;
    overflow:hidden;
}

/* WRAPPER */
.wrapper {
    position:relative;
    width:100%;
    height:100vh;
}

/* BACKGROUND */
.bg-animation {
    position: absolute;
    width: 100%;
    height: 100%;

    background: 
        linear-gradient(rgba(15,23,42,0.7), rgba(15,23,42,0.7)),
        url('../assets/bg.png');

    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;

    z-index: 0;
}


/* KARAKTER */
.character {
    position: fixed;
    top: 50%;
    right: 25%;
    transform: translateY(-50%) scale(3); 

    width: 900px;
    height: auto;

    z-index: 1;
    pointer-events: none;

    animation: karakterMasuk 1s ease forwards;
}

/* ANIMASI MASUK */
@keyframes karakterMasuk {
    from {
        transform: translate(300px, -50%) scale(1.6);
    }
    to {
        transform: translate(0, -50%) scale(1.6);
    }
}

/* LOGIN */
.login-container {
    position: absolute;
    top: 50%;
    right: 8%;
    transform: translateY(-50%);
    z-index: 2;
}

.login-box {
    width: 340px;
    padding: 35px;
    background: rgba(255,255,255,0.05);
    border-radius: 20px;
    backdrop-filter: blur(20px);
    box-shadow: 0 0 40px rgba(0,0,0,0.5);

    opacity: 0;
    transform: translateX(250px);
    transition: all 0.8s ease;
}

.login-box.active {
    opacity: 1;
    transform: translateX(0);
}

/* TITLE */
.title {
    text-align:center;
    color:white;
    margin-bottom:25px;
}

/* INPUT */
.input-group {
    position:relative;
    margin-bottom:20px;
}

.input-group input {
    width:100%;
    padding:12px;
    background:transparent;
    border:none;
    border-bottom:2px solid #555;
    color:white;
    outline:none;
}

/* LABEL */
.input-group label {
    position:absolute;
    top:10px;
    left:0;
    color:#aaa;
    transition:0.3s;
}

/* FLOATING */
.input-group input:focus ~ label,
.input-group input:valid ~ label {
    top:-15px;
    font-size:12px;
    color:#00c6ff;
}

/* BUTTON */
button {
    width:100%;
    padding:12px;
    background:linear-gradient(45deg,#00c6ff,#0072ff);
    border:none;
    color:white;
    border-radius:10px;
    cursor:pointer;
    transition:0.3s;
}

button:hover {
    transform:scale(1.05);
    box-shadow:0 0 15px #00c6ff;
}

/* ERROR */
.error {
    background: rgba(255,0,0,0.2);
    color: #ff4d4d;
    padding:10px;
    border-radius:8px;
    margin-bottom:15px;
    text-align:center;
}

/* SHOW PASSWORD */
.show-pass {
    color:#ccc;
    font-size:14px;
    margin-bottom:15px;
}

/* FOOTER */
.footer {
    text-align:center;
    color:#aaa;
    font-size:12px;
    margin-top:15px;
}

