body {
	background-color: #4B64F4;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 100vh;
	margin: 0;
	overflow: hidden;
	position: relative;
	animation: bgPulse 3s infinite alternate;
}

@keyframes bgPulse {
	0% { background-color: #4B64F4; box-shadow: 0 0 20px rgba(255, 255, 255, 0.2); }
	100% { background-color: #3b52c8; box-shadow: 0 0 40px rgba(255, 255, 255, 0.4); }
}

.floating-bubble {
	position: absolute;
	border-radius: 50%;
	background-color: rgba(255, 255, 255, 0.2);
	animation: bubbleMove 6s infinite cubic-bezier(0.68, -0.55, 0.27, 1.55);
	mix-blend-mode: screen;
	box-shadow: 0px 0px 15px rgba(0,0,0,0.2);
}

@keyframes bubbleMove {
	0%, 100% { transform: translate(-50vw, -50vh) rotate(0deg); }
	20% { transform: translate(50vw, -40vh) rotate(90deg); }
	40% { transform: translate(40vw, 40vh) rotate(180deg); }
	60% { transform: translate(-40vw, 50vh) rotate(270deg); }
	80% { transform: translate(-50vw, -40vh) rotate(360deg); }
}

.utama {
	transform: translateY(-100px);
}

.login-container {
	background-color: white;
	border-radius: 15px;
	box-shadow: -20px 4px 20px rgba(0, 0, 0, 0.2), 20px 4px 20px rgba(0, 0, 0, 0.2), 0px 20px 20px rgba(0, 0, 0, 0.2);
	padding: 40px;
	animation: slideDown 0.8s ease-out;
	width: 450px;
	max-width: 90vw;
	position: relative;
	z-index: 10;
}

@keyframes slideDown {
	0% { transform: translateY(-100px); opacity: 0; }
	100% { transform: translateY(0); opacity: 1; }
}

.login-title {
	margin-bottom: 20px;
	font-weight: bold;
	transform: translateY(-30px);
	color: #4B64F4;
	animation: fadeIn 1.2s ease-out;
	text-shadow: 2px 2px 4px rgba(0,0,0,0.3);
}

@keyframes fadeIn {
	0% { opacity: 0; }
	100% { opacity: 1; }
}

.form-control {
	border-radius: 10px;
	margin-bottom: 20px;
	padding-left: 35px;
	padding-right: 35px;
	background-image: url('https://cdn-icons-png.flaticon.com/512/709/709699.png');
	background-position: 10px center;
	background-repeat: no-repeat;
	background-size: 20px;
	transition: 0.3s;
	box-shadow: 0px 0px 10px rgba(75, 100, 244, 0.2);
	animation: inputFloat 1.5s infinite alternate;
}

.password-wrapper {
	position: relative;
}

.toggle-password {
	position: absolute;
	right: 10px;
	top: 30%;
	transform: translateY(-50%);
	cursor: pointer;
	color: #888;
	transition: transform 0.3s ease;
	animation: inputFloat 1.5s infinite alternate;
}

@keyframes inputFloat {
	0% { transform: translateY(0); box-shadow: 0px 0px 10px rgba(75, 100, 244, 0.2); }
	100% { transform: translateY(-5px); box-shadow: 0px 0px 20px rgba(75, 100, 244, 0.4); }
}

.form-control[type="password"] {
	background-image: url('https://cdn-icons-png.flaticon.com/512/3064/3064197.png');
}

.btn-primary {
	background-color: #4B64F4;
	border: none;
	border-radius: 10px;
	transition: background-color 0.3s, transform 0.3s;
	animation: pulse 1s infinite alternate;
	box-shadow: 0px 8px 20px rgba(0, 0, 0, 0.4);
}

@keyframes pulse {
	0% { transform: scale(1); box-shadow: 0px 8px 20px rgba(0, 0, 0, 0.4); }
	100% { transform: scale(1.1); box-shadow: 0px 12px 30px rgba(0, 0, 0, 0.6); }
}

.btn-primary:hover {
	background-color: #3b52c8;
}

.link-primary {
	color: #4B64F4;
	text-decoration: none;
	transition: color 0.3s;
	animation: linkBounce 1s infinite alternate;
}

@keyframes linkBounce {
	0% { transform: translateY(0); }
	100% { transform: translateY(-3px); }
}