 body {
 	font-family: "Montserrat", sans-serif;
 	font-optical-sizing: auto;
 	font-weight: 400;
 	font-style: normal;
 	font-size: 16px;
 	display: flex;
 	justify-content: center;
 	align-items: center;
 	flex-direction: column;
 	min-height: 100vh;
 	margin: 0;
 	padding: 0;
 	box-sizing: border-box;
 }

 .controls {
 	display: flex;
 	justify-content: space-between;
 	width: 100%;
 	max-width: 500px;
 	margin-bottom: 10px;
 }

 .button {
 	padding: 6px 12px;
 	background-color: #4f46e5;
 	color: white;
 	border: none;
 	border-radius: 4px;
 	cursor: pointer;
 }

 .visualization-container {
 	position: absolute;
 	width: 100vw;
 	height: 100vh;
 	left: 0;
 	right: 0;
 	margin-left: calc(-50vw + 50%);
 }

 .gradient-bg {
 	position: absolute;
 	top: 0;
 	left: 0;
 	width: 100%;
 	height: 100%;
 	min-width: 100%;
 	z-index: -1;
 	background-size: 300% 300%;
 	/* background: linear-gradient(to bottom, #4f46e5, #60a5fa, #4ade80); */
 	/* background: linear-gradient(45deg, #541ba2, #d4890b, #fc1c98);*/
 	/* background: linear-gradient(45deg, #7317c3, #d2348b, #31e6cb); */
 	/* background: linear-gradient(-45deg, #a0197c, #fe4374, #541ba2, #a0197c);*/
 	background: linear-gradient(45deg, #8634f9, #ffab1a, #ff2fa2);
 	animation: gradientAnimation 10s ease infinite;
 }

 @keyframes gradientAnimation {
 	0% {
 		background-position: 0% 0%;
 	}

 	25% {
 		background-position: 100% 0%;
 	}

 	50% {
 		background-position: 200% 200%;
 	}

 	75% {
 		background-position: 0% 100%;
 	}

 	100% {
 		background-position: 0% 0%;
 	}
 }

 .median {
 	position: fixed;
 	top: 50%;
 	left: 0;
 	height: 1px;
 	width: 100%;
 	z-index: -1;
 	background-color: rgba(255, 255, 255, 0.05);
 }

 .scroll-container {
 	position: relative;
 	height: 100%;
 	overflow-x: hidden;
 	overflow-y: hidden;
 	scroll-behavior: smooth;
 	padding-top: 2rem;
 	box-sizing: border-box;
 }

 .scroll-container:active {
 	cursor: grabbing;
 	/* Change cursor when active */
 }

 .spacer {
 	height: 100vh;
 }

 .dot-tooltip .tooltip-background {
 	fill: rgba(0, 0, 0, 0.0);
 }

 .dot-tooltip .tooltip-content {
 	display: flex;
 	flex-direction: column;
 	justify-content: center;
 	/* Center vertically */
 	align-items: center;
 	/* Center horizontally */
 	width: 100%;
 	height: 100%;
 	color: white;
 	/* Text color */
 }

 .dot-tooltip .image_container {
 	margin-top: 8px;
 	/* box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25); */
 	box-shadow: 0 0 20px 0 rgba(255, 255, 255, 0.25);
 	transition: box-shadow 0.25s ease-in-out;
 	/* Apply transition to box-shadow */
 }

 .dot-tooltip .image_container:hover {

 	box-shadow: 0 0 30px 0 rgba(255, 255, 255, 0.8);
 	/* box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.5);  */
 	transition: box-shadow 0.25s ease-in-out;
 	/* Apply transition to box-shadow */

 }

 .dot-tooltip .tooltip-image {
 	width: auto;
 	height: 100%;
 	display: block;
 	pointer-events: auto;

 }

 .dot-tooltip .tooltip-title {
 	font-size: 12px;
 	font-weight: 400;
 	margin-bottom: 2px;
 	text-align: center;
 	text-wrap: balance;
 	hyphens: auto;
 }

 .dot-tooltip .tooltip-description {
 	font-size: 10px;
 	font-weight: 300;
 }

 .dot-tooltip .image_container {
 	width: 80px;
 	height: 80px;
 	overflow: hidden;
 	border-radius: 50%;
 	border: 2px solid white;
 	display: flex;
 	justify-content: center;
 }

 .dot-tooltip .tooltip-arrow {
 	width: 1px;
 	height: 30px;
 	background: linear-gradient(to bottom, transparent, rgba(255, 255, 255, 0.5), transparent);
 }

 .dot {
 	transition: r 0.2s ease, fill 0.2s ease;
 	cursor: pointer;
 }

 .dot:hover {
 	fill: rgba(255, 255, 255, 0.9);
 	filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.8));
 }

 .dot-tooltip {
 	pointer-events: none;
 	opacity: 1;
 	/* Always visible */
 }

 .tooltip-img {
 	width: 100%;
 	height: 100%;
 	object-fit: cover;
 	border-radius: 4px;
 }