@import url('https://fonts.googleapis.com/css2?family=Comic+Relief:wght@400;700&display=swap');

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-moz-text-size-adjust: none;
	-webkit-text-size-adjust: none;
	text-size-adjust: none;
	color-scheme: light dark;
	tab-size: 2;
	word-break: break-word;
}

html,
body {
	margin: 0;
}

ul[role="list"],
ol[role="list"] {
	list-style: none;
}

body {
	min-height: 100vh;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	text-wrap: balance;
}

img,
video,
iframe,
picture {
	max-inline-size: 100%;
	block-size: auto;
	display: block;
	border-style: none;
}

input,
button,
textarea,
select {
	font-family: inherit;
	font-size: inherit;
}

textarea:not([rows]) {
	min-height: 5lh;
}

:target {
	scroll-margin-block: 5ex;
}

p,
li,
dd {
	text-wrap: pretty;
}

svg {
	fill: currentColor;
}

[aria-disabled="true" i],
[disabled] {
	cursor: not-allowed;
}

[hidden] {
	display: none !important;
}

[disabled],
label:has(input[disabled]) {
	opacity: 0.5;

	[disabled] {
		opacity: 1;
	}
}

.sr-only:not(:focus):not(:active) {
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

@media (prefers-reduced-motion: no-preference) {
	@view-transition {
		navigation: auto;
	}

	html {
		interpolate-size: allow-keywords;
		scroll-behavior: smooth;
	}
}

html {
	background: black url("/images/bg.gif") repeat repeat;
	color: white;
	font-size: 16px;
	line-height: 1.5;
}

body {
	font-family: "Comic Relief", sans-serif;
}

main {
	padding: 2rem;
	margin-block: 3rem;
	margin-inline: auto;
	inline-size: min(100%, 80ch);
	min-block-size: 20rem;
	background: transparent url("/images/bg.png") repeat repeat;

	& > * + * {
		margin-block-start: 1.5em;
	}

	& > * + hr {
		margin-block-start: 2.5rem;
	}
}

.page-title {
	font-size: 6rem;
	line-height: 1.1;
	text-align: center;
	animation-name: pageTitle;
	animation-duration: 1600ms;
	animation-timing-function: step-start;
	animation-iteration-count: infinite;
	animation-fill-mode: forwards;
}

@keyframes pageTitle {
	0% {
		color: white;
		text-shadow:
			0px 0px 10px red,
			2px 2px 0 black,
			4px 4px 0 hotpink,
			6px 6px 0 black,
			8px 8px 0 hotpink,
			10px 10px 0 black,
			12px 12px 0 hotpink;
	}

	25% {
		color: hotpink;
		text-shadow:
			2px 2px 0 black,
			4px 4px 0 white,
			6px 6px 0 black,
			8px 8px 0 hotpink,
			10px 10px 0 black,
			12px 12px 0 hotpink;
	}

	50% {
		color: hotpink;
		text-shadow:
			2px 2px 0 black,
			4px 4px 0 hotpink,
			6px 6px 0 black,
			8px 8px 0 white,
			10px 10px 0 black,
			12px 12px 0 hotpink;
	}

	75% {
		color: hotpink;
		text-shadow:
			2px 2px 0 black,
			4px 4px 0 hotpink,
			6px 6px 0 black,
			8px 8px 0 hotpink,
			10px 10px 0 black,
			12px 12px 0 white;
	}

	100% {
		color: white;
		text-shadow:
			0px 0px 5px white,
			0px 0px 15px hotpink,
			2px 2px 0 black,
			4px 4px 0 hotpink,
			6px 6px 0 black,
			8px 8px 0 hotpink,
			10px 10px 0 black,
			12px 12px 0 hotpink;
	}
}

.intro-text {
	font-size: 1.5rem;
	text-align: center;

	span {
		font-weight: 700;
		text-shadow: 0 0 2px black, 0 0 2px cyan, 0 0 5px cyan;
	}
}

hr {
	display: block;
	width: 600px;
	height: 3px;
	margin-inline: auto;
	background-image: url("/images/hr.gif");
	background-repeat: repeat-y;
	border: 0;
	background-color: transparent;
}

a {
	color: white;
	text-decoration-color: cyan;
	text-decoration-thickness: 0.1em;
	text-underline-offset: 0.3em;
	text-decoration-skip-ink: none;
}

.badge-explainer {
	background-color: rgb(0 0 0 / 10%);
	backdrop-filter: blur(2px);
	padding: 2rem 1rem;
	text-align: center;
	border: 2px outset;
	text-wrap: balance;

	& > * + * {
		margin-block-start: 2rem;
	}

	img {
		margin-inline: auto;
	}
}

.website-gallery {
	margin: 0;
	padding: 0;
	list-style: none;

	li {
		padding-block: 1rem;
	}

	& > li + li {
		border-block-start: 1px solid cyan;
	}
}

h2 {
	color: white;
	text-align: center;
	text-shadow:
		2px 2px 0 black,
		3px 3px 0 cyan;
}