	.keyboard-scaler {
		width: 100%;
		overflow: hidden;
		text-align: center;
	}

	#keyboard {
		display: inline-block;
		padding: 1.5rem 1rem;
		margin-bottom: 8px;
		border-radius: 12px;
		overflow-x: auto;
		background: #d4d4d4;
	}

	.kb-row {
		display: flex;
		gap: 5px;
		margin-bottom: 5px;
		flex-wrap: nowrap;
	}

	.kb-key {
		display: grid;
		grid-template-columns: 1fr 1fr;
		grid-template-rows: 1fr 1fr;
		width: 52px;
		height: 52px;
		flex-shrink: 0;
		background: #ffffff;
		border: 1px solid #b0b0b0;
		border-radius: 6px;
		padding: 6px;
		box-sizing: border-box;
		font-family: sans-serif;
		font-size: 10px;
		color: #111;
		cursor: default;
	}

	.kb-key.special {
		background: #cccccc;
		width: auto;
		display: flex;
		align-items: center;
		justify-content: left;
		font-size: 11px;
		color: #444;
		font-weight: 500;
		padding: 0 10px;
	}

	.kb-key .tl { grid-column: 1; grid-row: 1; align-self: start;	justify-self: start; font-size: 10px; font-weight: 500; }
	.kb-key .tr { grid-column: 2; grid-row: 1; align-self: start;	justify-self: end;	 color: #777;	 font-size: 10px;	}
	.kb-key .bl { grid-column: 1; grid-row: 2; align-self: end;		justify-self: start; font-size: 10px; font-weight: 500; }
	.kb-key .br { grid-column: 2; grid-row: 2; align-self: end;		justify-self: end;	 color: #777;	 font-size: 10px;	}

	#key-desc {
		display: grid;
		grid-template-columns: 1fr 1fr;
		grid-template-rows: 1fr 1fr;
		width: 100%;
		max-width: 866px;
		min-height: 133.5px;
		margin-left: auto;
		margin-right: auto;
		margin-bottom: 32px;
		border: 1px solid #ccc;
	}

	#key-desc-placeholder {
		grid-column: 1 / -1;
		grid-row: 1 / -1;
		display: flex;
		align-items: center;
		justify-content: center;
		text-align: center;
		color: var(--pico-muted-color);
		font-size: 90%;
		padding: 32px;
		background: var(--pico-background-color);
	}

	#key-desc-placeholder.hidden {
		display: none;
	}

	#key-desc-tl {
		grid-column: 1; grid-row: 1; align-self: start;
	}

	#key-desc-tr {
		grid-column: 2; grid-row: 1; align-self: start;
	}

	#key-desc-bl {
		grid-column: 1; grid-row: 2; align-self: end;
	}

	#key-desc-br {
		grid-column: 2; grid-row: 2; align-self: end;
	}

	#key-desc-tl,
	#key-desc-tr,
	#key-desc-bl,
	#key-desc-br {
		display: flex;
		align-items: center;
		justify-self: stretch;
		height: 100%;
		padding: 8px;
		border: 1px solid #ccc;
		box-sizing: border-box;
	}

	.key-desc-char {
		font-size: 160%;
		width: 80px;
		text-align: center;
		flex-shrink: 0;
	}

	.key-desc-info {
		flex: 1;
		display: flex;
		flex-direction: column;
		text-align: left;
	}

	.key-desc-name {
		font-size: 85%;
		font-weight: 500;
	}

	.key-desc-details {
		font-size: 60%;
	}

	table {
		table-layout: fixed;
		width: 100%;
	}

	table th:nth-child(1),
	table td:nth-child(1) {
		width: 5rem;
	}

	table th:nth-child(2),
	table td:nth-child(2) {
		width: 26%;
	}

	table th:nth-child(3),
	table td:nth-child(3) {
		width: 12rem;
	}
