*,
*::before,
*::after {
	box-sizing: border-box;
}

:host {
	--color-white: #ffffff;
	--color-white-alpha-05: rgba(255, 255, 255, 0.05);
	--color-white-alpha-10: rgba(255, 255, 255, 0.1);
	--color-white-alpha-15: rgba(255, 255, 255, 0.15);
	--color-white-alpha-20: rgba(255, 255, 255, 0.2);
	--color-white-alpha-25: rgba(255, 255, 255, 0.25);
	--color-white-alpha-30: rgba(255, 255, 255, 0.3);
	--color-white-alpha-40: rgba(255, 255, 255, 0.4);
	--color-white-alpha-60: rgba(255, 255, 255, 0.6);
	--color-white-alpha-70: rgba(255, 255, 255, 0.7);
	--color-white-alpha-90: rgba(255, 255, 255, 0.9);
	--color-gray-100: #9ca3af;
	--color-gray-400: #6b7280;
	--color-gray-950: #1a1a1a;
	--color-blue-400: #00dfff;
	--color-blue-900: #1b3243;
	--color-purple-400: #a855f7;
	--color-purple-900: #31144a;
	--color-green-400: #65ee2e;
	--color-green-500: #22c55e;
	--color-green-900: #3d4928;
	--color-yellow-400: #facc15;
	--color-orange-400: #ff9900;
	--color-orange-500: #f97316;
	--color-orange-900: #4d301b;
	--color-red-400: #f87171;
	--color-amber-600: #d97706;
	--color-orange-500-alpha-60: rgba(249, 115, 22, 0.6);
	--color-black-alpha-10: rgba(0, 0, 0, 0.1);
	--color-black-alpha-40: rgba(0, 0, 0, 0.4);
	--color-black-alpha-60: rgba(0, 0, 0, 0.6);
	--color-panel: rgba(18, 18, 20, 0.92);

	--spacing-1: 0.0625rem;
	--spacing-2: 0.125rem;
	--spacing-4: 0.25rem;
	--spacing-8: 0.5rem;
	--spacing-12: 0.75rem;
	--spacing-16: 1rem;
	--spacing-24: 1.5rem;
	--spacing-32: 2rem;
	--spacing-48: 3rem;
	--border-radius-sm: 0.375rem;
	--border-radius-md: 0.5rem;
	--border-radius-lg: 0.75rem;

	--accent: var(--color-orange-400);
	--ease: cubic-bezier(0.4, 0, 0.2, 1);

	font-family: system-ui, "Segoe UI", Roboto, sans-serif;
}

.flex-center {
	display: flex;
	justify-content: center;
	align-items: center;
}

.flex-align-center {
	display: flex;
	align-items: center;
}

/* Round overlay control button. */
.control {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 2.25rem;
	height: 2.25rem;
	padding: 0;
	color: var(--color-white);
	background: transparent;
	border: none;
	border-radius: 50%;
	cursor: pointer;
	transition:
		background-color 120ms var(--ease),
		transform 120ms var(--ease),
		color 120ms var(--ease);
}

.control svg {
	width: 1.25rem;
	height: 1.25rem;
}

.control:hover:not(:disabled) {
	background-color: var(--color-white-alpha-15);
}

.control:active:not(:disabled) {
	transform: scale(0.92);
}

.control--active {
	color: var(--accent);
}

.control--off {
	color: var(--color-red-400);
}

.control:disabled {
	opacity: 0.4;
	cursor: default;
}
