* {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	margin: 0px;
}

:root {
	--back_color: white;
	--text_color: black;
	--code_box_color: #EEE;
	--code_text_color: black;
	--code_comment_color: #888;
}

html {
	/* from w3css */
	-ms-text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%;
	overflow-x: hidden;
}

body {
	position: relative;
	background: var(--back_color);
	color: var(--text_color);
	width: 100%;
}

h1 {
	margin-top: 2em;
}

h1 + h2 {
	margin-top: .5em;
}

h2 {
	margin-top: 2em;
}

p {
	line-height: 1.3;
}

p + p {
	margin-top: 1em;
}

.page_frame {
	max-width: 38em;
	margin: 32px;
	margin-top: 64px;
	margin-right: 48px;
}
@media screen and (min-width: 699px) {
	/*  699px+32px+48px so that we have 32px/48px marging around the shown page */
	.page_frame {
		margin: 64px;
		margin-right: 96px;
	}
}
@media screen and (min-width: 1160px) {
	/*  1000px+64px+96px so that we have 64px/96px marging around the shown page */
	.page_frame {
		margin: 64px auto;
	}
}

.page_font {
	font-size: 16px;
}
@media screen and (min-width: 600px) and (min-height: 415px) {
	/* the min-height is required so that mobile-landscape does not enter here. The value is the css-width of iPhone6 ... + 1px */
	.page_font {
		font-size: 20px;
	}
}
@media screen and (min-width: 1380px) {
	/*  page text (e.g. "about") is scaled based on width only */
	.page_font {
		font-size: 24px;
	}
}

.code_box {
	margin-top: 1em;
	margin-bottom: 1em;
	margin-left: 0em;
	margin-right: 0em;
	font-size: 90%;
	background-color: var(--code_box_color);
	border-radius: .5em;
}
@media screen and (min-width: 1160px) {
	/*  on monitors the box is inset by an additional 1em margin */
	.code_box {
		margin-left: 1em;
		margin-right: 1em;
	}
}

.code_snippet {
	font-family: monospace;
	color: var(--code_text_color);
	padding: 1em;
	line-height: 1.3;
	overflow: auto;
}

.stress {
	color: magenta;
}

.code_comment {
	color: var(--code_comment_color);
}

.code_separator_line {
	width: 100%;
	border: 1px solid var(--back_color);
}

.font_italic {
	font-style: italic;
}

.text_underline {
	text-decoration: underline;
}

.link_color {
	color: #00E;
}

.cursor_pointer {
	cursor: pointer;
}

.hidden {
	display: none;
}

.revealed {
	padding: 1em;
}

#hidden1_cb:checked ~ #hidden1 {
	display: block;
}

input[type="checkbox"] + label::after {
	display: inline-block;
	content: "▾";
}

input[type="checkbox"]:checked + label::after {
	transform: rotate(180deg);
}
