/*!normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css*/html {
	line-height: 1.15;
	-webkit-text-size-adjust: 100%
}

body {
	margin: 0
}

main {
	display: block
}

h1 {
	font-size: 2em;
	margin: .67em 0
}

hr {
	box-sizing: content-box;
	height: 0;
	overflow: visible
}

pre {
	font-family: monospace,monospace;
	font-size: 1em
}

a {
	background-color: transparent
}

abbr[title] {
	border-bottom: none;
	text-decoration: underline;
	text-decoration: underline dotted
}

b,strong {
	font-weight: bolder
}

code,kbd,samp {
	font-family: monospace,monospace;
	font-size: 1em
}

small {
	font-size: 80%
}

sub,sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline
}

sub {
	bottom: -.25em
}

sup {
	top: -.5em
}

img {
	border-style: none
}

button,input,optgroup,select,textarea {
	font-family: inherit;
	font-size: 100%;
	line-height: 1.15;
	margin: 0
}

button,input {
	overflow: visible
}

button,select {
	text-transform: none
}

button,[type=button],[type=reset],[type=submit] {
	-webkit-appearance: button
}

button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner {
	border-style: none;
	padding: 0
}

button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring {
	outline: 1px dotted ButtonText
}

fieldset {
	padding: .35em .75em .625em
}

legend {
	box-sizing: border-box;
	color: inherit;
	display: table;
	max-width: 100%;
	padding: 0;
	white-space: normal
}

progress {
	vertical-align: baseline
}

textarea {
	overflow: auto
}[type=checkbox],[type=radio] {
	box-sizing: border-box;
	padding: 0
}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button {
	height: auto
}[type=search] {
	-webkit-appearance: textfield;
	outline-offset: -2px
}[type=search]::-webkit-search-decoration {
	-webkit-appearance: none
}

::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit
}

details {
	display: block
}

summary {
	display: list-item
}

template {
	display: none
}[hidden] {
	display: none
}

.markdown {
	line-height: 1.7
}

.markdown h1,.markdown h2,.markdown h3,.markdown h4,.markdown h5 {
	font-weight: 400;
	line-height: 1.25
}

.markdown h1:first-child,.markdown h2:first-child,.markdown h3:first-child,.markdown h4:first-child,.markdown h5:first-child {
	margin-top: 0;
	line-height: 1em
}

.markdown b,.markdown optgroup,.markdown strong {
	font-weight: 700
}

.markdown a {
	text-decoration: none
}

.markdown a:hover {
	text-decoration: underline
}

.markdown code {
	font-family: oxygen mono,monospace;
	padding: 0 .25rem;
	background: #f8f9fa;
	border-radius: .15rem
}

.markdown pre {
	padding: 1rem;
	background: #f8f9fa;
	border-radius: .15rem;
	font-size: .875rem;
	overflow-x: auto
}

.markdown pre code {
	padding: 0;
	background: 0 0
}

.markdown blockquote {
	border-left: 2px solid #dee2e6;
	margin: 0;
	padding: 1px 1rem
}

.markdown blockquote :first-child {
	margin-top: 0
}

.markdown blockquote :last-child {
	margin-bottom: 0
}

.markdown table {
	border-spacing: 0;
	border-collapse: collapse
}

.markdown table tr th,.markdown table tr td {
	padding: .5rem 1rem;
	line-height: 1;
	border: 1px solid #e9ecef
}

.markdown table tr:nth-child(2n) {
	background: #f8f9fa
}

.flex {
	display: flex
}

.justify-start {
	justify-content: flex-start
}

.justify-end {
	justify-content: flex-end
}

.justify-center {
	justify-content: center
}

.justify-between {
	justify-content: space-between
}

.align-center {
	align-items: center
}

.mx-auto {
	margin: 0 auto
}

.mr-auto {
	margin-right: auto
}

.hide {
	display: none
}



html {
	font-size: 16px;
	letter-spacing: .33px;
	scroll-behavior: smooth
}

html,body {
	min-width: 20rem;
	overflow-x: hidden
}

body {
	color: #343a40;
	background: #fff;
	font-family: oxygen,sans-serif;
	font-weight: 400;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	box-sizing: border-box
}

body * {
	box-sizing: inherit
}

h1,h2,h3,h4,h5 {
	font-weight: 400
}

a {
	text-decoration: none;
	color: #004ed0
}

a:visited {
	color: #8440f1
}

img {
	vertical-align: middle
}

aside nav ul {
	padding: 0;
	margin: 0;
	list-style: none
}

aside nav ul li {
	margin: 1em 0
}

aside nav ul a {
	display: block
}

aside nav ul a:hover {
	opacity: .5
}

aside nav ul ul {
	padding-left: 1rem
}

ul.pagination {
	display: flex;
	justify-content: center
}

ul.pagination .page-item a {
	padding: 1rem
}

.container {
	max-width: 80rem;
	margin: 0 auto
}

.book-brand {
	margin-top: 0
}

.book-menu {
	flex: 0 0 16rem;
	font-size: .875rem
}

.book-menu nav {
	width: 16rem;
	padding: 1rem;
	position: fixed;
	top: 0;
	bottom: 0;
	overflow-x: hidden;
	overflow-y: auto
}

.book-menu a {
	color: #343a40
}

.book-menu a.active {
	color: #004ed0
}

.book-section-flat {
	margin-bottom: 2rem
}

.book-section-flat>a,.book-section-flat>span {
	font-weight: 600
}

.book-section-flat>ul {
	padding-left: 0
}

.book-page {
	min-width: 20rem;
	flex-grow: 1;
	padding: 1rem
}

.book-header {
	margin-bottom: 1rem;
	display: none
}

.book-toc {
	flex: 0 0 14rem;
	font-size: .75rem
}

.book-toc nav {
	width: 14rem;
	padding: 1rem;
	position: fixed;
	top: 0;
	bottom: 0;
	overflow-x: hidden;
	overflow-y: auto
}

.book-toc nav>ul>li {
	margin: 0
}

.book-git-footer {
	display: flex;
	margin-top: 1rem;
	font-size: .875rem;
	align-items: baseline
}

.book-git-footer img {
	width: .875rem;
	vertical-align: bottom
}

.book-footer {
	display: flex;
	margin-top: 1rem;
	font-size: .875rem;
	align-items: baseline
}

.book-footer img {
	width: .875rem;
	vertical-align: bottom
}

.book-posts {
	min-width: 20rem;
	max-width: 41rem;
	flex-grow: 1;
	padding: 1rem
}

.book-posts article {
	padding-bottom: 1rem
}

.book-home {
	padding: 1rem
}

aside nav,.book-page,.book-posts,.markdown {
	transition: .2s ease-in-out;
	transition-property: transform,margin-left,opacity;
	will-change: transform,margin-left
}

@media screen and (max-width:55rem) {
	.book-toc {
		display: none
	}
}

@media screen and (max-width:41rem) {
	.book-menu {
		margin-left: -16rem
	}

	.book-header {
		display: flex
	}

	#menu-control:checked+main .book-menu nav,#menu-control:checked+main .book-page,#menu-control:checked+main .book-posts {
		transform: translateX(16rem)
	}

	#menu-control:checked+main .book-header label {
		transform: rotate(90deg)
	}

	#menu-control:checked+main .markdown {
		opacity: .25
	}
}

@media screen and (min-width:80rem) {
	.book-page,.book-posts,.book-menu nav,.book-toc nav {
		padding: 2rem 1rem
	}
}