
html, body, #canvas {
	margin: 0;
	padding: 0;
	border: 0;
}

body {
	color: white;
	background-color: black;
	overflow: hidden;
	touch-action: none;
}

#canvas {
	display: block;
}

#canvas:focus {
	outline: none;
}

#status, #status-splash, #status-progress {
	position: absolute;
	left: 0;
	right: 0;
}

#status, #status-splash {
	top: 0;
	bottom: 0;
}

#status {
	background-color: #242424;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	visibility: hidden;
}

#status-splash {
	max-height: 100%;
	max-width: 100%;
	margin: auto;
}

#status-splash.show-image--false {
	display: none;
}

#status-splash.fullsize--true {
	height: 100%;
	width: 100%;
	object-fit: contain;
}

#status-splash.use-filter--false {
	image-rendering: pixelated;
}

#status-progress, #status-notice {
	display: none;
}

#status-progress {
	bottom: 10%;
	width: 50%;
	margin: 0 auto;
}

#status-notice {
	background-color: #5b3943;
	border-radius: 0.5rem;
	border: 1px solid #9b3943;
	color: #e0e0e0;
	font-family: 'Noto Sans', 'Droid Sans', Arial, sans-serif;
	line-height: 1.3;
	margin: 0 2rem;
	overflow: hidden;
	padding: 1rem;
	text-align: center;
	z-index: 1;
}
		
#welcome{position:fixed;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;background:radial-gradient(ellipse at top,#205969,#071b28);text-align:center;font-family:system-ui,sans-serif;box-sizing:border-box}#welcome span{color:#efcf89;letter-spacing:2px;font-size:12px}#welcome h1{font-size:clamp(22px,5vw,36px)}#welcome p{font-size:14px;line-height:1.8;color:#cbdee2}#welcome .small{font-size:11px;color:#9eb7be}#start{padding:18px 36px;font-size:18px;font-weight:800;color:#163342;background:#f2d093;border:0;border-radius:12px;cursor:pointer;margin:18px}#home{position:fixed;top:env(safe-area-inset-top,0px);left:8px;z-index:5;padding:6px 10px;color:#e0e7ea;background:#123747aa;border-radius:0 0 8px 8px;font:11px system-ui;text-decoration:none}#status-notice{font-family:system-ui}#status-progress{height:16px;accent-color:#f2d093}#status-splash{opacity:.25}

.practice-embedded #welcome,.practice-embedded #status{display:none!important}

.practice-level{display:grid;gap:8px;width:min(300px,100%);text-align:left}.practice-level select{width:100%;min-height:48px;padding:10px;border:1px solid #efcf89;border-radius:10px;background:#123343;color:#fff;font:16px system-ui}
#practice-sound{position:fixed;right:8px;top:calc(env(safe-area-inset-top,0px) + 4px);z-index:8;min-height:36px;padding:6px 12px;background:#123747;border:1px solid #81dbe1;border-radius:9px;color:white;font:600 12px system-ui;cursor:pointer}body .practice-download{right:8px;top:46px;bottom:auto}

/* Large, touch-friendly practice controls. */
#home,#practice-sound{box-sizing:border-box;min-height:48px;display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;font:700 17px/1.2 system-ui,sans-serif;top:calc(env(safe-area-inset-top,0px) + 4px);border:1px solid #81dbe1;border-radius:10px;background:#123747f2;color:#fff}
#home{min-width:108px}#practice-sound{min-width:126px}
body .practice-download{top:calc(env(safe-area-inset-top,0px) + 54px);max-width:calc(100vw - 16px);padding:2px 10px;font:600 12px/1.25 system-ui,sans-serif;border-radius:8px}

/* Preserve the supplied startup artwork and keep loading text legible. */
#status{background:#090605}
#status-splash{opacity:1}
#status-progress{bottom:12%;height:12px;width:min(64%,380px);z-index:1;accent-color:#f8d084}
#status-caption{position:absolute;bottom:5%;left:50%;transform:translateX(-50%);margin:0;padding:10px 18px;max-width:calc(100% - 48px);box-sizing:border-box;border:1px solid #f8d08466;border-radius:14px;background:#140c08dd;color:#fff5d9;text-align:center;font:600 15px/1.5 system-ui,sans-serif;z-index:1}
#status-caption{width:max-content;word-break:keep-all}
