body {
	overflow-x: hidden;
}

img {
	width: 100%;
	max-width: 100%;
	height: auto;
	margin: var(--quarter-note) 0;
}

hr {
	margin: var(--half-note) 0;
	width: 100%;
	height: 0;
	border: 0;
	border-top: 1px solid var(--neutral-light);
}

.details {
	font-size: 0.8rem;
	line-height: 1.5em;
	font-style: italic;
}

.pre-heading {
	margin-bottom: 0rem;
}

.categories li a {
	background: var(--heading-color);
	padding: 0.5em;
	border-radius: 8px;
	text-align: center;
	color: var(--paper);
	font-weight: bold;
	text-decoration: none;
}

.layout {
	margin: var(--quarter-note) var(--margin) var(--whole-note) var(--margin);
	width: calc(100% - (var(--margin) * 2));
	position: relative;
	background: transparent;
	color: var(--ink);

	main {
		width: 100%;

		> h1,
		h2 {
			&:first-child {
				margin-top: 0;
			}
		}
	}
}

.cp_embed_wrapper {
	margin-bottom: var(--half-note);
	margin-top: var(--half-note);
}

.header__divider {
	height: var(--button-size);
	width: 1px;
	background: var(--neutral-light);
	display: block;
	position: relative;
	z-index: 11;

	@media (min-width: 56rem) {
		display: none;
	}
}

.icon-container :is(button, .header__divider) {
	transition-timing-function: cubic-bezier(1, 0, 0, 1);
	transition-property: transform;
	transition-duration: 0.4s;
}

.icon-container > *:nth-child(1) {
	transition-delay: 0s;
}

.icon-container > *:nth-child(2) {
	transition-delay: 0.08s;
}

.icon-container > *:nth-child(3) {
	transition-delay: 0.16s;
}

.ghosty :is(button, .header__divider) {
	transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
	transition-duration: 0.3s;
	transform: translateY(-4rem);

	@media (min-width: 42rem) {
		transform: translateY(-6rem);
	}
}

.table {
	width: auto;
	overflow-x: auto;
	margin-bottom: var(--half-note);
	position: relative;

	&-outer {
		position: relative;
		width: 100%;

		&::after {
			content: '';
			height: 100%;
			position: absolute;
			width: 2rem;
			background: linear-gradient(to right, transparent, var(--neutral-white));
			top: 0;
			right: 0;
		}
	}
}

table {
	min-width: 100%;
	border-collapse: collapse;
	font-size: 0.9rem;
	margin: var(--dotted-half-note) 0 var(--half-note);
	border-right: 2rem solid transparent;

	td,
	th {
		padding: 1em 2em 1em 0;
		white-space: pre;
		line-height: 1;

		&:last-of-type {
			padding-right: 0;
		}
	}

	th {
		text-align: left;
		padding-bottom: 0.5em;
		font-weight: bold;
		font-size: 1rem;
		font-family: var(--heading-font);
	}

	thead tr {
		border-bottom: 2px solid;
		line-height: 1;
	}

	tbody tr {
		border-bottom: 1px solid var(--neutral-light);
	}
}

.twitter-tweet {
	margin: var(--half-note) 0 !important;
}

.example-component-wrapper {
	border: 1px solid;
	padding: calc(var(--quarter-note) + var(--quarter-note));
	margin: var(--half-note) 0;
}

.blog-roll {
	@media (min-width: 82rem) {
		grid-column: span 2;
	}
}


.toc-wrap {
	background: linear-gradient(to bottom right, #a7a8aa, #92abb2, #5eca78, #b6ec1f, #ffd100);
	@supports(background: linear-gradient(in oklch, white, black)) {
		background: linear-gradient(to bottom right in oklch, var(--neutral-light), var(--yellow) 80%);
	}
	padding: 2px;
	margin: 3rem 0;
}

.toc {
	background: var(--paper);
	padding: 1rem 1.5rem 1.5rem;
	line-height: 1.6;
	width: 100%;
	position: relative;
	z-index: 2;
	font-family: var(--heading-font);

	h2 {
		font-weight: bold;
		font-family: var(--heading-font);
		font-size: 0.8rem;
		margin: 0;
		background: var(--paper);
		position: relative;
		padding: 0;
		top: calc(-1rem - 0.6em);
		left: 0;
		text-transform: uppercase;
		color: var(--neutral-light);
		display: flex;
		width: 14em;
		justify-content: space-between;
		align-items: center;
		line-height: 1;

		.opening-bracket,
		.closing-bracket {
			display: block;
			position: relative;
			z-index: 2;
			left: -1px;
			bottom: 0.05em;
		}

		.closing-bracket {
			left: unset;
			right: -1px;
		}

		&::before {
			display: none;
		}
	}

	.toc-list {
		list-style-type: decimal;
		font-size: 0.85rem;
		margin: 0;

		li::marker {
			color: var(--ink);
			content: unset;
			font-weight: normal;
		}

		> li {
			font-weight: bold;

			&::marker {
				font-weight: bold;
			}

			ul {
				font-weight: normal;
			}
		}

		ul {
			list-style-type: lower-alpha;
			margin: 0.25em 0 0;

			ul {
				list-style-type: decimal;
			}
		}

		li {
			list-style-type: inherit;
			margin: 0 0 0.25em;

			&:last-child {
				margin-bottom: 0;
			}

			::marker {
				content: '- ';
			}

			a {
				text-decoration: none;
			}
		}
	}
}
