@layer layout {
	main {
		display: grid; padding: 2rem;
		grid: auto / 1fr auto 1fr;
		position: relative;
	}
	aside {
		place-self: start end;
		width: 16rem;
		position: sticky; top: 6.5rem;
		a {
			display: block; padding: .375rem 1.5rem; margin: .25rem 0;
			color: white;
			box-shadow: 5rem 0 0 calc(3px - 5rem) inset transparent;
			border-radius: .5rem;
			text-decoration: none;
			transition: background-color .2s, border-radius .2s, box-shadow .2s;
			&:hover { background-color: var(--background-color); }
			&.link-h1 { font-size: 1.5rem; }
			&.link-h3 { padding-left: 2.5rem; }
			&.current:not(.link-h1) {
				background-color: var(--background-color);
				border-radius: 3px .5rem .5rem .3px;
				box-shadow: 5rem 0 0 calc(3px - 5rem) inset var(--name-color);
			}
		}
	}
	article {
		width: min(100vw - 23rem, 45rem);
		margin-left: clamp(3rem, 25vw - 14.5rem, 5rem);
	}

	#prelude {
		display: flex; padding-bottom: 1rem;
		flex-wrap: wrap; justify-content: space-between; gap: .5rem;
		test-suite { margin-left: auto; }
	}
	#crumbs {
		display: flex; height: 3rem;
		flex-wrap: wrap; align-items: center;
		ui-icon {
			display: inline-block; width: 1rem; height: 1rem; padding: 0.75rem;
			color: var(--comment-color);
		}
	}
	@media (width <= 1000px){
		main { display: block; }
		aside { display: none; }
		article {
			width: 100%; margin: 0;
		}
		#prelude {
			test-suite { display: none; }
		}
		:is(h1, h2, h3, h4, h5, h6) a { display: none; }
	}
	ui-code { margin: 2rem 1rem; }
	h1, h2, h3, h4, h5, h6 {
		position: relative;
		& a {
			padding: 0 .25em 0 0;
			position: absolute; inset: 0 100% 0 auto;
			color: var(--comment-color);
			text-decoration: none;
			&::before {
				transition: opacity .2s;
				content: "#";
				content: "#" / "";
			}
		}
		&:not(:hover) a::before { opacity: 0; }
	}
	h1 { margin-top: 0; }
	article > p { margin: 1.5rem 0; }
	dd { margin: 1rem 0 1rem 2rem; }
	dt mark {
		padding: .125em .5em;
		color: var(--background-color); background-color: var(--meta-color);
		border-radius: 2em;
		font-weight: 900;
	}
}
