body {
	background: linear-gradient(135deg, #0f172a, #1e293b);
	overflow-x: hidden;
	position: relative;
}

/* Container das bolhas, fixo atrás de todo o conteúdo */
.bubbles {
	position: fixed;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	pointer-events: none;
}

/* Conteúdo real do site precisa de stacking context próprio para ficar acima das bolhas */
.site-content {
	position: relative;
	z-index: 1;
}

.bubbles .bubble {
	position: absolute;
	bottom: -150px;
	display: block;
	animation: float linear infinite;
}

.bubbles .bubble-icon {
	position: absolute;
	inset: 0;
	background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iQ2FtYWRhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmlld0JveD0iMCAwIDEwNjQuMiAxMDM3LjQzIj4KICA8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMzAuNi4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogMi4xLjQgQnVpbGQgMTA5KSAgLS0+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5zdDAgewogICAgICAgIGZpbGw6IHVybCgjbGluZWFyLWdyYWRpZW50KTsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyLWdyYWRpZW50IiB4MT0iNTMyLjEiIHkxPSIxMDM3LjQzIiB4Mj0iNTMyLjEiIHkyPSItNjYuNjIiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KICAgICAgPHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZmZmMjAwIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iLjEyIiBzdG9wLWNvbG9yPSIjZjliMDI2Ii8+CiAgICAgIDxzdG9wIG9mZnNldD0iLjMxIiBzdG9wLWNvbG9yPSIjZjI1MjVjIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iLjQ0IiBzdG9wLWNvbG9yPSIjZWQxNjdlIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iLjUiIHN0b3AtY29sb3I9IiNlYzAwOGMiLz4KICAgICAgPHN0b3Agb2Zmc2V0PSIuNTUiIHN0b3AtY29sb3I9IiNkMTAyODgiLz4KICAgICAgPHN0b3Agb2Zmc2V0PSIuNjYiIHN0b3AtY29sb3I9IiM5ZTA2ODEiLz4KICAgICAgPHN0b3Agb2Zmc2V0PSIuNzciIHN0b3AtY29sb3I9IiM3NTA5N2IiLz4KICAgICAgPHN0b3Agb2Zmc2V0PSIuODYiIHN0b3AtY29sb3I9IiM1ODBjNzciLz4KICAgICAgPHN0b3Agb2Zmc2V0PSIuOTQiIHN0b3AtY29sb3I9IiM0NzBkNzQiLz4KICAgICAgPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjNDEwZTc0Ii8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogIDwvZGVmcz4KICA8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNTEzLjUsNzczLjcyYy0xMjQuMyw5LjE4LTIyMS4xMiwxMDcuMzMtMjMyLjgsMjI3LjQsMjYuODgsMTQuNDQsNTUuMTksMjYuNTUsODQuNTksMzYuMjUtNi40My05MS43Miw2Mi43NC0xNzEuNzMsMTU0LjQ5LTE3OC40Nyw5MS45Ny02Ljc5LDE3Mi4zLDYyLjUsMTc5LjEsMTU0LjQ4LjYsOC4xNC40LDE2LjE0LS4xNSwyNC4wNSwyOS40NS05LjcxLDU3LjgtMjEuODMsODQuNzItMzYuMjktMTMuMjQtMTM1Ljk0LTEzMy4wMy0yMzcuNTMtMjY5Ljk2LTIyNy40MloiLz4KICA8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNTMyLjEsMEMyMzguMjMsMCwwLDIzOC4yMywwLDUzMi4xYzAsNzguMjcsMTcuMDQsMTUyLjUyLDQ3LjM5LDIxOS40NCw4OC42LTE1Ni4zNCwyNTEuMDYtMjY3LjAyLDQ0My43Mi0yODEuMjQsMjIxLjg3LTE2LjM1LDQyMi44OCw5OS43LDUyNS43MiwyODEuMiwzMC4zNC02Ni45Miw0Ny4zNy0xNDEuMTUsNDcuMzctMjE5LjRDMTA2NC4yLDIzOC4yMyw4MjUuOTcsMCw1MzIuMSwwWiIvPgogIDxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00OTkuMTcsNTc5LjQ2Yy0xNzcuMTIsMTMuMDYtMzIyLjgsMTI4LjEyLTM4My43NSwyODMuMzUsMjAuMTIsMjUuMzIsNDIuNDksNDguNzUsNjYuODMsNzAuMDEsMzguNi0xNDQuOSwxNjUuNDYtMjU2LjU2LDMyMy4yMS0yNjguMjIsMTc2LjMtMTMsMzMyLjc4LDEwMy4yLDM3Ni41MSwyNjguMjIsMjQuMzUtMjEuMjgsNDYuNzMtNDQuNzIsNjYuODctNzAuMDYtNjkuNjgtMTc3Ljk0LTI0OS4zNi0yOTguMDktNDQ5LjY2LTI4My4yOVoiLz4KPC9zdmc+");
	background-size: contain;
	background-repeat: no-repeat;
	transform-origin: center;
	transition: transform .4s ease-out, opacity .4s ease-out;
}

.bubbles .bubble-icon.popped {
	transform: scale(1.8);
	opacity: 0;
}

@keyframes float {
	0% {
		transform: translateY(0) translateX(0) scale(1);
		opacity: 0;
	}
	10% {
		opacity: 1;
	}
	90% {
		opacity: 1;
	}
	100% {
		transform: translateY(-110vh) translateX(var(--drift, 40px)) scale(1.05);
		opacity: 0;
	}
}
