:root {
  color-scheme: light dark;
}

html {
  scroll-behavior: smooth;
}

body {
  --bg-black: #121517;
  --background: var(--white);
  --foreground: var(--black);
	--accent: light-dark(#2337ff, #8691ff);
  --border: 2px solid var(--foreground);

	font-family: 'redaction 35', sans-serif;
	margin: 0;
	padding: 0;
	word-wrap: break-word;
	overflow-wrap: break-word;
  border: var(--border);
	color: var(--foreground);
  background-color: var(--background);
  background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23121517' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
	font-size: 20px;
	line-height: 1.7;
  position: relative;
}

@media (prefers-color-scheme: dark) {
  body {
    --background: var(--bg-black);
    --foreground: var(--white);
    background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23faf9f5' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  }
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0 0 0.5rem 0;
	color: rgb(var(--black));
	line-height: 1.2;
}
h1 {
	font-size: 3.052em;
}
h2 {
	font-size: 2.441em;
}
h3 {
	font-size: 1.953em;
}
h4 {
	font-size: 1.563em;
}
h5 {
	font-size: 1.25em;
}
strong,
b {
	font-weight: 700;
}
a {
	color: var(--accent);
  position: relative;
}

a:after {
  content: "";
	background-color: var(--accent);
	position: absolute;
	bottom: 0;
	left: 0;
	height: 2px;
	width: 0;
	transition: 0.2s;
}

a:hover:after {
  width: 100%;
}


a:not(*.button):hover {
	color: var(--accent);
}
p {
	margin-bottom: 1em;
}
table {
	width: 100%;
}
img {
	max-width: 100%;
	height: auto;
	border-radius: 8px;
}
code {
	padding: 2px 5px;
	background-color: rgb(var(--gray-light));
	border-radius: 2px;
}
pre {
	padding: 1.5em;
	border-radius: 8px;
}
pre > code {
	all: unset;
}
blockquote {
	border-left: 4px solid var(--accent);
	padding: 0 0 0 20px;
	margin: 0px;
	font-size: 1.333em;
}
hr {
	border: none;
	border-top: 1px solid rgb(var(--gray-light));
}
@media (max-width: 720px) {
	body {
		font-size: 18px;
	}
}

.sr-only {
	border: 0;
	padding: 0;
	margin: 0;
	position: absolute !important;
	height: 1px;
	width: 1px;
	overflow: hidden;
	/* IE6, IE7 - a 0 height clip, off to the bottom right of the visible 1px box */
	clip: rect(1px 1px 1px 1px);
	/* maybe deprecated but we need to support legacy browsers */
	clip: rect(1px, 1px, 1px, 1px);
	/* modern browsers, clip-path works inwards from each corner */
	clip-path: inset(50%);
	/* added line to stop words getting smushed together (as they go onto seperate lines and some screen readers do not understand line feeds as a space */
	white-space: nowrap;
}

input, select, textarea {
  background-color: var(--background);
  height: 38px;
  border: 2px solid var(--foreground);
  border-radius: 0;
  padding: 3px 15px;
  font-size: 1.3rem;
  font-family: 'redaction 20';
  color: #737373;
}

*::placeholder {
  color: #737373;
}

input[type="submit"] {
  width: max-content;
  color: var(--black);
}

textarea {
  padding: 15px;
  height: initial;
}

.button {
  border-radius: 0;
  border: 2px solid var(--black);
  font-family: 'redaction 20', serif;
  line-height: 1.25;
  background-color: var(--white);
  padding: 5px 20px;
  color: var(--black);
  text-decoration: none;
  transition: 0.1s ease 0s;
  position: relative;
}

.button:after {
  content: "";
	background-color: black;
	position: absolute;
	bottom: 7px;
	left: 20px;
	height: 2px;
	width: 0;
	transition: 0.2s;
}

.button:hover:after {
  width: calc(100% - 40px);
}
