@font-face {
	font-family: murecho;
	src: url(/font/Murecho-Regular.woff2);
}
@font-face {
	font-family: murecho-bold;
	src: url(/font/Murecho-ExtraBold.woff2);
}
@font-face {
	font-family: alkatra;
	src: url(/font/Alkatra[wght].ttf);
}

html, body {
	width: 100%;
	height: 100%;
	padding: 0;
	margin: 0;
}

#download details {
	margin-top: 1em;
	margin-bottom: 1em;
}

#download details > summary {
	font-family: murecho-bold;
	font-size: 125%;
	cursor: pointer;
}

body {
	--white: #fffff8;
	--black: #2c294d;

	background: var(--white);
	color: var(--black);
	font-family: "murecho", sans-serif;
}

nav {
	background: #f8fcff;
}

a[href] {
	font-weight: bold;
	text-decoration: none;
}

ul {
	margin-block-start: 0;
	margin-block-end: 0;
	padding-inline-start: 0;
}

li {
	list-style-type: none;
}

table {
	margin-left: auto;
	margin-right: auto;
	margin-top: 0.5em;
	margin-bottom: 1em;
	border-collapse: collapse;
}

table > thead {
	border-bottom: 1px solid gray;
}

table.auto-funs tr th:nth-child(1) {
	width: 10%;
}
table.auto-funs tr th:nth-child(2) {
	width: 45%;
}
table.auto-funs tr th:nth-child(3) {
	width: 45%;
}

table.syntax-translate {
	width: 100%;
}

table.setters {
	table-layout: fixed;
}
table.setters tr th:nth-child(1) {
	width: 15%;
}
table.setters tr th:nth-child(2) {
	width: 20%;
}
table.setters tr th:nth-child(3) {
	width: 55%;
}

table tr, table th {
	padding: 0;
}
table > tbody > tr {
	border-bottom: 1px solid #88888844;
}
table > tbody > tr:last-child {
	border-bottom: none;
}

table td {
	padding-left: 0.2em;
	padding-right: 0.2em;
}

table.operators tr td:first-child {
	text-align: center;
}

ul.bullets {
	padding-left: 1.5em;
}
ul.bullets li {
	margin: 0.5em;
	list-style-type: disc;
}
ul.bullets ul {
	padding-left: 1.5em;
}
ul.bullets ul li {
	list-style-type: circle;
}

#crow img {
	width: 3rem;
	height: 3rem;
	padding: 0rem;
	padding-left: 0.5rem;
	padding-right: 0.5rem;
	display: block;
	transform: scale(1.15);
	transform-origin: center;
}

header nav {
	height: 3em;
	padding-left: 0;
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	font-family: 'hack', monospace;
	border-bottom: 1px solid black;
	position: relative;
	z-index: 999;
}

header nav ul {
	height: 3em;
}

header nav ul li {
	margin-top: 0.5em;
	margin-right: 0.75em;
	padding-left: 0.75em;
}

#side-nav-wrapper {
	display: flex;
	flex-direction: row;
}

#side-nav-wrapper nav {
	display: flex;
	flex-direction: column;
	margin-top: 2em;
	border-radius: 0 1em 1em 0;
	font-size: 80%;
	height: 100%;
	padding-left: 1em;
	padding-right: 1em;
	padding-bottom: 1em;
	border: 2px solid #80808080;
	min-width: 8em;
}

nav ul li {
	margin-top: 0.25em;
}

nav a {
	color: inherit;
	text-decoration: none;
}

a.current {
	color: #664400;
}
#side-nav-wrapper nav ul a.current::after {
	content: " ⬅";
	font-weight: bold;
}

nav ul {
	display: flex;
	margin: 0;
	padding: 0;
}

nav ul.grow {
	flex-grow: 1;
}

#side-nav-wrapper nav ul {
	flex-direction: column;
	padding-top: 1em;
}

nav ul li {
	font-size: 125%;
}

main {
	background: white;

	width: 52em;
	margin-top: 1em;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 1em;
	padding-top: 0.5em;
	padding-bottom: 0.5em;
	padding-left: 2em;
	padding-right: 2em;
	border-radius: 2em;
	border: 2px solid #80808080;
}
main.play {
	width: 64em;
}

main h1, main h2, main h3 {
	font-family: murecho-bold;
	width: auto;
	padding-left: 1em;
}

main h1 {
	font-size: 2rem;
	margin-top: 1em;
	border-bottom: 2px solid #000;
}
main h1:first-of-type {
	margin-top: 0.25em;
}

main h2 {
	font-size: 1.5rem;
	margin-top: 1.5em;
	margin-left: 0.5em;
	margin-right: 0.5em;
	border-bottom: 1.5px solid #888;
}

main h3 {
	font-size: 1.33rem;
	margin-top: 1.5em;
	margin-left: 1em;
	margin-right: 3em;
	border-bottom: 1px solid #ddd;
}

aside {
	margin-left: 4em;
	margin-right: 4em;
	margin-top: 1em;
	margin-bottom: 1em;
	--bg: #ddffcc;
	--border: #209050;
	--border-width: 0.15rem;
	background-color: var(--bg);
}
aside.danger {
	--bg: #ffddcc;
	--border: #ffccaa;
}
aside:not(.small) {
	margin-top: 2em;
	padding: 1em;
	padding-top: 0em;
	padding-bottom: 0em;
	border: var(--border-width) solid var(--border);
}
aside > h4 {
	font-family: alkatra;
	font-size: 80%;
	text-align: center;
	margin-top: 0;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: -1.5em;
	position: relative;
	bottom: 0.75em;
	font-size: 1.5rem;
	background-color: var(--bg);
	border-width: var(--border-width);
	border-style: solid;
	border-image-source: conic-gradient(
		var(--border) 0%,
		var(--border) 24.50%,
		transparent 24.50%,
		transparent calc(100% - 24.50%),
		var(--border) calc(100% - 24.50%),
		var(--border) 100%
	);
	border-image-slice: 1;
	width: 13em;
}
aside > h4 + ul {
	margin-top: 1em;
}

div.code-block {
	margin-left: 1em;
	margin-right: 1em;
	margin-top: 0.5em;
	margin-bottom: 0.5em;
	padding: 0.25em;
	border-radius: 0.5em;
	color: #224400;
	font-family: 'hack', monospace;
}
div.code-block > pre {
	margin: 0;
}

code {
	font-weight: bold;
	font-family: 'hack', monospace;
	font-size: 92.5%;
}

crow-icon {
	display: inline-block;
	margin-left: 0.25em;
	margin-right: 0.25em;
	width: 0.75em;
	height: 0.75em;
	transform: scale(1.5);
	transform-origin: bottom;
}

/*
Token types:
https://microsoft.github.io/language-server-protocol/specifications/lsp/3.18/specification/#textDocument_semanticTokens
*/
code.namespace { color: #ff8040; }
code.function { color: #207020; }
code > span.function { color: #207020; }
code.variable { color: #404020; }
code.parameter { color: #806020; }
code.type, code.enum { color: #4060ff; }
code.typeParameter { color: #40a0ff; }
code.interface { color: #c02000; }
code.keyword { color: #ff60a0; }
code.property, code.enumMember { color: #602080; }
code.string { color: #ff8020; }
code.number { color: #ff6040; }

#next {
	margin-top: 1em;
	margin-bottom: 0.5em;
	float: right;
	font-size: 125%;
}
#next::before {
	content: "➞";
	margin-right: 0.5em;
}

.documentation h1 {
	display: flex;
	flex-direction: row;
}

.documentation h1 code {
	display: inline-block;
	flex-grow: 1;
}

.documentation .module-doc {
	margin-left: 2em;
}

.documentation .source-link {
	font-size: 50%;
	margin-top: auto;
	height: 100%;
}

.doc {
	--tab: 4em;
}

.doc p {
	margin-left: 2em;
}

.doc p.has-non-public-fields {
	margin-left: var(--tab);
}

.doc div.code-block {
	margin-left: 2em;
}

.doc .alias-target {
	margin-left: var(--tab);
}

.doc span.type-params code.typeParameter + code.typeParameter {
	margin-left: 0.33em;
}

.doc.alias h4+span {
	margin-left: var(--tab);
}

h4 {
	margin-block-end: 0.5em;
}

.doc h4 {
	color: #aaa;
	font-family: 'hack', monospace;
}

.doc ul.members {
	margin-left: var(--tab);
}

.doc ul.spec-sigs {
	margin-left: var(--tab);
}
