body {
	margin: 0;
	margin-bottom: 50px;
	background: #061427;
	overflow-x: hidden;
}

	/* A* neon background */
	#bgCanvas {
		position: fixed;
		inset: 0;
		width: 100vw;
		height: 100vh;
		z-index: 0;
	
		pointer-events: none;
	}

	/* Keep UI above canvas */
	.topbar, .flex, .footer {
		position: relative;
		z-index: 2;
	}
		/* ========================================
   CUSTOM FROSTED GLASS SCROLLBAR
   ======================================== */

	/* WebKit browsers (Chrome, Safari, Edge) */
	body::-webkit-scrollbar {
		width: 28px;
	}

	body::-webkit-scrollbar-track {
		background: transparent;
	}

	body::-webkit-scrollbar-thumb {
		background: rgba(40, 120, 200, 0.18);
		border: 1px solid rgba(170, 230, 255, 0.25);
		border-radius: 10px;
		backdrop-filter: blur(14px) saturate(140%);
		-webkit-backdrop-filter: blur(14px) saturate(140%);
		box-shadow: 0 0 20px rgba(100, 180, 255, 0.15);
		transition: opacity 0.4s ease, background 0.2s ease;
	}

	body::-webkit-scrollbar-thumb:hover {
		background: rgba(40, 120, 200, 0.28);
		border-color: rgba(170, 230, 255, 0.35);
		box-shadow: 0 0 25px rgba(100, 180, 255, 0.25);
	}

	body::-webkit-scrollbar-thumb:active {
		background: rgba(40, 120, 200, 0.38);
		border-color: rgba(170, 230, 255, 0.45);
	}

	/* Firefox */
	* {
		scrollbar-width: 28px;
		scrollbar-color: rgba(40, 120, 200, 0.25) transparent;
	}

	/* Fade out scrollbar when inactive */
	body.scrollbar-hidden::-webkit-scrollbar-thumb {
		opacity: 0;
	}

	body::-webkit-scrollbar-thumb {
		opacity: 1;
	}
	.flexvertical {
			display: flex;
			flex-direction: column;
			color: #444;
		}
		
		.flexhorizontal {
			display: flex;
			flex-direction: row;
			flex-wrap: wrap;
			align-items: center;
			justify-content: center;
			
			margin-bottom: 0px;
			
			max-width: 1500px;
			color: #444;
		}

		/* Frosted panel to separate cards from the animated background */
		.cardsPanel {
			max-width:1540px;
			width: min(1540px, calc(100% - 20px));
			background: rgba(40, 120, 200, 0.14);
			border: 1px solid rgba(170, 230, 255, 0.22);
			border-radius: 22px;
			padding: 18px; /* bottom padding for the fixed footer */
			box-shadow: 0 10px 34px rgba(0,0,0,0.35);
			backdrop-filter: blur(14px) saturate(140%);
			-webkit-backdrop-filter: blur(14px) saturate(140%);
		}

		@media (max-width: 1000px) {
			.cardsPanel {
				width: calc(100% - 10px);
				padding: 10px 8px 10px 8px;
				border-radius: 18px;
			}
		}
		
		/* 
		@media screen and (orientation:portrait) {
			.flexvertical {
				width: 100%;
				max-height: 90%;
				aspect-ratio: 6/4;
			}
		}
		
		@media screen and (orientation:landscape) {
			.flexvertical {
				height: 90%;
				max-width: 100%;
				aspect-ratio: 6/4;
			}
		}
		*/
		
		.flex {
			display: flex;
			padding: 0px;
			min-height: 100%;
			justify-content: center;
			align-items: center;
		}
		
		@media (max-width: 1000px) {
		  .flex {
			padding: 5px;
		  }
		}
		
		.box {
			position: relative;
			background-color: #888;
			border-radius: 10px;
			padding: 20px;
			margin: 5px;
			font-size: 150%;
			box-shadow: 0 0 10px 2px #222;
			overflow: hidden;
			padding: 0px;
			
			width: 400px;
			height: 400px;
			max-width: 90vw;
			
			background-repeat: no-repeat;
			background-size: cover;
			background-position: center;
		}
		
		.flexvertical .box {
			height: 195px;
			
		}
		
		/*
		.flexvertical .box:first-child {
			margin-bottom: 0px;
		}
		
		.flexvertical .box:last-child {
			margin-top: 0px;
		}
		*/
		
				.popup {
			display: block;
			position: absolute;
			left: 0;
			right: 0;
			bottom: 0;
			max-height: 0;
			overflow: hidden;
			padding: 0 10px;
			opacity: 0;
			transform: translateY(10px);
			pointer-events: none;
			background-color: rgba(229, 228, 226, 0.78);
			color: #222;

			transition:
				max-height 0.22s ease,
				padding 0.22s ease,
				opacity 0.18s ease,
				transform 0.22s ease;
		}
		.box:hover .popup {
			max-height: 100%;
			padding: 10px;
			opacity: 1;
			transform: translateY(0);
			pointer-events: auto;
		}
		
		.title {
			display: block;
			padding-bottom: 10px;
		}
		
		.desc {
			font-family: "Helvetica Neue", Arial, sans-serif;
			font-size: small;
			margin: 0px;
		}
		
		li {
			font-family: "Helvetica Neue", Arial, sans-serif;
			font-size: small;
		}

		.footer {
		   position: fixed;
		   left: 0;
		   bottom: 0;
		   width: 100%;
		   background-color: #333;
		   color: white;
		   text-align: center;
		}
		.footertext {
			margin: 0px;
			font: bold 14px/20px Georgia, serif;
			white-space: pre-wrap;
		}

		.topbar{
			display:flex;
			justify-content:center;
			margin-top: 20px;
			margin-bottom: 10px;
		}
		.filters{
			max-width:1540px;
			width: min(1540px, calc(100% - 20px));
			display:flex;
			flex-direction:column;
			gap: 10px;
			padding: 18px;

			background: rgba(40, 120, 200, 0.14);
			border: 1px solid rgba(170, 230, 255, 0.22);
			border-radius: 18px;
			box-shadow: 0 10px 34px rgba(0,0,0,0.28);
			backdrop-filter: blur(14px) saturate(140%);
			-webkit-backdrop-filter: blur(14px) saturate(140%);
			
			justify-content: center;
			align-items: center;
		}
		.filterRow{
			display:flex;
			flex-wrap:wrap;
			align-items:center;
			gap: 8px;
		}
				.filterLabel{
			color: rgba(235, 248, 255, 0.92);
			font: bold 14px/20px Georgia, serif;
			margin-right: 8px;
		}
				.filterBtn{
			border: 1px solid rgba(170, 230, 255, 0.26);
			background: rgba(40, 120, 200, 0.18);
			color: rgba(235, 248, 255, 0.95);
			border-radius: 999px;
			padding: 7px 12px;
			font: bold 13px/18px Georgia, serif;
			letter-spacing: 0.2px;
			cursor:pointer;
			user-select:none;
			box-shadow: 0 6px 14px rgba(0,0,0,0.18);
			backdrop-filter: blur(10px) saturate(140%);
			-webkit-backdrop-filter: blur(10px) saturate(140%);
			transition: transform 0.12s ease, background 0.12s ease, border-color 0.12s ease, box-shadow 0.12s ease;
		}
		.filterBtn:hover{
			background: rgba(90, 170, 255, 0.20);
			border-color: rgba(210, 245, 255, 0.32);
			transform: translateY(-1px);
			box-shadow: 0 10px 20px rgba(0,0,0,0.22);
		}
		.filterBtn.active{
			background: rgba(120, 210, 255, 0.26);
			border-color: rgba(230, 255, 255, 0.46);
			box-shadow: 0 0 0 1px rgba(255,255,255,0.14), 0 12px 26px rgba(0,0,0,0.28);
		}
