		html, body {
			margin: 0;
			padding: 0;
			width: 100%;
			height: 100%;
			background: #000;
			color: #fff;
			font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
			overflow: hidden;
		}

		#uiBar {
			position: absolute;
			top: 0;
			left: 0;
			right: 0;
			height: 40px;
			display: flex;
			align-items: center;
			padding: 0 12px;
			box-sizing: border-box;
			background: rgba(0, 0, 0, 0.85);
			z-index: 10;
			font-size: 14px;
		}

		#uiBar span.title {
			font-weight: bold;
			margin-right: 16px;
		}

		#cubeCanvas {
			display: block;
			position: absolute;
			top: 40px; /* sits under the UI bar */
			left: 0;
			width: 100%;
			height: calc(100% - 40px);
			background: transparent;
		}


/* --- Mineshaft Loading Overlay --- */
.loading-overlay{
	position: fixed;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(0,0,0,0.85);
	backdrop-filter: blur(2px);
	opacity: 0;
	pointer-events: none;
	transition: opacity 180ms linear;
	z-index: 999999;
}
.loading-overlay.is-visible{
	opacity: 1;
	pointer-events: auto;
}
.loading-card{
	width: min(520px, calc(100vw - 32px));
	border-radius: 16px;
	padding: 18px 18px 14px;
	background: rgba(20,20,20,0.92);
	box-shadow: 0 10px 30px rgba(0,0,0,0.5);
	border: 1px solid rgba(255,255,255,0.10);
}
.loading-title{
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.2px;
	margin-bottom: 12px;
	color: #fff;
}
.loading-bar{
	height: 14px;
	border-radius: 999px;
	background: rgba(255,255,255,0.12);
	overflow: hidden;
	border: 1px solid rgba(255,255,255,0.10);
}
#loadingBarFill{
	height: 100%;
	width: 0%;
	background: rgba(255,255,255,0.75);
	transition: width 120ms linear;
}
.loading-percent{
	margin-top: 10px;
	font-size: 14px;
	color: rgba(255,255,255,0.92);
}
.loading-stage{
	margin-top: 6px;
	font-size: 13px;
	color: rgba(255,255,255,0.70);
}
.loading-error{
	margin-top: 10px;
	font-size: 12px;
	color: #ffb3b3;
	white-space: pre-wrap;
	word-break: break-word;
}
