html {
	height: 100%;

	--max-page-width: 70em;
	--side-margin: 20px;

	/*colors*/
	--accent-color: #70F000;
	--accent-color-glow: #3b7d00;
	--accent-color-glow-intense: #70F000;
	--accent-color-hover: #5fcc00;
	--on-accent-color: black;
	--accent-color-variant: #4d8800;
	--accent-color-variant-glow: ;
	--accent-color-variant-glow-intense: #3b7d00;
	--on-accent-color-variant: white;
	--secondary-accent-color: #666666;
	--text-color: white;
	--text-color-glow: #DDDDDD;
	--text-color-comfort: #C5C5C5;
	--text-color-light: #AAAAAA;
	--background-color: #111;
	--background-color-light: #1d1d1d;
	--card-background-color: #272727;
	--secondary-button-color: #303030;
	--secondary-button-color-hover: #2b2b2b;
	--secondary-button-color-glow: #505050;
	--on-secondary-button-color: white;
	--border-color: #555566;
	--border-color-light: #2a2a36;
	--inline-code-background-color: #fffdfd1f;
	--highlight-color: #ba0000;
	--on-highlight-color: white;
}

body {
	margin: 0 auto;
	font-family: sans-serif;
	background-color: var(--background-color);
	color: var(--text-color);
	height: 100%;
	display: flex;
	flex-direction: column;
	width: calc(100vw - 2 * var(--side-margin));
	line-height: 1.5em;
}

a {
	color: var(--accent-color);
	text-decoration: none;
}
a:visited {
	color: var(--accent-color-variant);
}
a:hover {
	text-decoration: underline;
}
a:active {
	text-shadow: 0 0 3px var(--accent-color-glow-intense);
}
a:visited:active {
	text-shadow: 0 0 3px var(--accent-color-variant-glow-intense);
}

h1, h2, h3, h4, h5, h6 {
	line-height: 1.5em;
}

h1 {
	text-align: center;
	font-size: 2.5em;
	color: var(--accent-color);
	text-shadow: 0 0 5px var(--accent-color-glow);
	line-height: 1.2em;
}

main {
	flex: 1 0 auto;
}

footer {
	text-align: center;
	flex-shrink: 0;
	color: var(--text-color-light);
	margin-top: 1.5em;
}

abbr {
	text-decoration: none;
}

hr {
	border: none;
	border-top: 1px solid var(--border-color-light);
}

figure {
	float: right;
	margin: 1em;
	max-width: 15em;
}

figure img {
	width: 100%;
	border-radius: 5px;
	border: 1px solid var(--border-color);
}

figcaption {
	margin-top: 0.5em;
}

@media (max-width: 35em) {
	figure {
		float: none;
		margin: 1em auto;
	}
}

article p {
	color: var(--text-color-comfort);
}

code, samp {
	font-family: monospace;
	background-color: var(--inline-code-background-color);
	border-radius: 3px;
	padding: 2px 5px;
	color: var(--text-color);
}

code.code-box, samp.code-box {
	max-height: 20em;
	overflow: auto;
	border: 1px solid var(--border-color);
	border-radius: 5px;
	background-color: var(--background-color-light);
	padding: 8px 12px;
	margin: 1.5em 0;
	line-height: 1.4rem;
	display: block;
}

kbd {
	background-color: var(--inline-code-background-color);
	border-radius: 3px;
	padding: 1px 3px;
	margin-right: 3px;
	color: var(--text-color);
	border: 1px solid var(--border-color);
	box-shadow: 1px 2px 0 var(--background-color), 1px 1px 0 var(--background-color), 1px 2px 0 1px var(--border-color), 1px 1px 0 1px var(--border-color);
}

blockquote:not(.nice-quote) {
	border-left: 10px solid var(--secondary-accent-color);
	border-radius: 2px;
	background-color: var(--background-color-light);
	padding: 8px 12px;
	margin: 1.5em 0;
	margin-left: 2em;
	color: var(--text-color-comfort);
}

blockquote.nice-quote {
	color: var(--text-color);
	font-style: italic;
	text-align: center;
	margin: 1.5em 2em;
	text-shadow: 0 0 3px var(--text-color-glow);
}
blockquote.nice-quote::before {
	content: open-quote;
}
blockquote.nice-quote::after {
	content: close-quote "  —  " attr(cite);
}

q {
	font-style: italic;
}

var {
	font-family: serif;
	font-style: italic;
}

mark {
	background-color: var(--highlight-color);
	border-radius: 2px;
	padding: 0 2px;
	color: var(--on-highlight-color);
}

label {
	color: var(--text-color-comfort);
	font-size: small;
}

input, select, textarea {
	display: block;
	background-color: var(--background-color-light);
	color: var(--text-color);
	border: 1px solid var(--border-color);
	border-radius: 3px;
	margin-bottom: 1em;
	padding: 8px 12px;
	line-height: 1.5em;
}
input:focus, select:focus, textarea:focus {
	outline: none;
}

input[type="range"] {
	color: var(--background-color-light);
}

input[type="checkbox"], input[type="radio"] {
	display: inline;
}

input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="url"]{
	width: 100%;
	max-width: 30em;
}
textarea {
	width: 100%;
}

button, input[type="submit"], input[type="button"] {
	background-color: var(--accent-color);
	color: var(--on-accent-color);
	border: none;
	border-radius: 5px;
	padding: 8px 20px;
}
button:hover, input[type="submit"]:hover, input[type="button"]:hover {
	background-color: var(--accent-color-hover);
}
button:active, input[type="submit"]:active, input[type="button"]:active {
	box-shadow: 0 0 10px var(--accent-color-glow-intense);
}

button.secondary-button, input[type="reset"], button[type="reset"] {
	background-color: var(--secondary-button-color);
	color: var(--on-secondary-button-color);
	border: none;
	border-radius: 5px;
	padding: 8px 20px;
}
button.secondary-button:hover, input[type="reset"]:hover, button[type="reset"]:hover {
	background-color: var(--secondary-button-color-hover);
}
button.secondary-button:active, input[type="reset"]:active, button[type="reset"]:active {
	box-shadow: 0 0 10px var(--secondary-button-color-glow);
}

button[type="submit"], input[type="submit"] {
	margin-left: auto;
}

.card {
	padding: 8px 25px;
	margin: 2em 0;
	background-color: var(--card-background-color);
	border-radius: 15px;
}

.card h2 {
	margin-top: 10px;
}

.big-title {
	font-size: 3.5em;
	text-shadow: 0 0 15px var(--accent-color-glow);
}

.http-status-code {
	font-size: 1.5em;
	font-style: italic;
	text-align: center;
}

article section {
	margin-bottom: 2em;
}
section.main-section {
	margin-bottom: 6em;
}
article section.main-section {
	margin-bottom: 4em;
}

main header {
	margin-bottom: 4em;
}

.very-long-word {
	overflow-wrap: break-word;
}

.important {
	color: var(--text-color);
}

#copyright-hint {
	margin-bottom: 1.5em;
}

@media (min-width: /*--max-page-width*/ 70em) {
	body {
		width: calc(var(--max-page-width) - 2 * var(--side-margin));
	}
}
