Pen Settings

HTML

CSS

CSS Base

Vendor Prefixing

Add External Stylesheets/Pens

Any URLs added here will be added as <link>s in order, and before the CSS in the editor. You can use the CSS from another Pen by using its URL and the proper URL extension.

+ add another resource

JavaScript

Babel includes JSX processing.

Add External Scripts/Pens

Any URL's added here will be added as <script>s in order, and run before the JavaScript in the editor. You can use the URL of any other Pen and it will include the JavaScript from that Pen.

+ add another resource

Packages

Add Packages

Search for and use JavaScript packages from npm here. By selecting a package, an import statement will be added to the top of the JavaScript editor for this package.

Behavior

Auto Save

If active, Pens will autosave every 30 seconds after being saved once.

Auto-Updating Preview

If enabled, the preview panel updates automatically as you code. If disabled, use the "Run" button to update.

Format on Save

If enabled, your code will be formatted when you actively save your Pen. Note: your code becomes un-folded during formatting.

Editor Settings

Code Indentation

Want to change your Syntax Highlighting theme, Fonts and more?

Visit your global Editor Settings.

HTML

              
                <header>
	<nav>
		<ul class="menu">
			<li class="menu-item"><a href="#futhark" class="menu-link" aria-current="true">Futhark</a></li>

			<li class="menu-item"><a href="#learn" class="menu-link" aria-current="false">Learn</a></li>
		</ul>
	</nav>
</header>

<main>
	<section id="futhark" aria-hidden="false">
		<h1 class="section-overlap-box"><span>Fu&shy;th&shy;ark</span></h1>

		<ol class="grid" role="list"></ol>

		<form class="section-overlap-box">
			<input type="checkbox" id="show-alt-runes">
			<label for="show-alt-runes">&nbsp;Show alternative Runes</label>
		</form>
	</section>

	<section id="learn" aria-hidden="true">
		<h1 class="section-overlap-box"><span>Ex&shy;er&shy;cise</span></h1>

		<div id="exercise" class="content" tabindex="-1">
			<p class="text-center">Click below to get started!</p>
		</div>

		<div class="section-overlap-box">
			<button type="button" id="new-exercise">New exercise</button>
		</div>
	</section>
</main>

<footer>
	<p>Made with curiosity by <a href="https://chriskirknielsen.com" target="_top">chriskirknielsen</a>, info from <a href="https://en.wikipedia.org/wiki/Elder_Futhark">Wikipedia</a></p>
</footer>

<template id="exercise-match">
	<p data-match="glyph-to-match" class="large-letter single-flat-word">X</p>

	<p data-match="prompt" class="text-center">Which one of these match the glyph above?</p>

	<ol class="match-grid" data-match="options">
		<li data-match="option" data-index="1"><button type="button" class="stone" data-match="opt-button" aria-pressed="false">1</button></li>
		<li data-match="option" data-index="2"><button type="button" class="stone" data-match="opt-button" aria-pressed="false">2</button></li>
		<li data-match="option" data-index="3"><button type="button" class="stone" data-match="opt-button" aria-pressed="false">3</button></li>
		<li data-match="option" data-index="4"><button type="button" class="stone" data-match="opt-button" aria-pressed="false">4</button></li>
	</ol>

	<p class="msg-warning" data-match="warning" tabindex="-1" hidden></p>
	<p data-match="result" tabindex="-1" hidden></p>

	<button type="button" data-match="verify" class="large-button">Check answer</button>
</template>

<template id="exercise-spell">
	<p data-spell="word-to-spell" class="large-letter single-flat-word text-center">WORD</p>

	<p data-spell="prompt"class="text-center">Translate the {{type}} above using the {{glyphs}} below.</p>

	<ol class="glyphbank is-added" data-spell="composed"></ol>

	<ol class="glyphbank is-idle" data-spell="glyphs"></ol>

	<p class="msg-warning" data-spell="warning" tabindex="-1" hidden></p>
	<p data-spell="result" tabindex="-1" hidden></p>

	<button type="button" data-spell="verify" class="large-button">Check answer</button>
</template>
<template id="exercise-spell-tile">
	<li data-spell="glyph"><button type="button" class="tile" data-spell="opt-button" aria-pressed="false">X</button></li>
</template>

<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" class="visually-hidden">
	<defs>
		<linearGradient id="gold" x1="0" x2="100%" y1="0" y2="100%">
			<stop stop-color="#BF953F" offset="0%" />
			<stop stop-color="#FCF6BA" offset="25%" />
			<stop stop-color="#B38728" offset="50%" />
			<stop stop-color="#FBF5B7" offset="75%" />
			<stop stop-color="#AA771C" offset="100%" />
		</linearGradient>

		<filter id="noise">
			<feGaussianBlur in="SourceGraphic" stdDeviation="0.0625" result="blur" />
			<feTurbulence result="waves" type="turbulence" baseFrequency="0.735 0.771" numOctaves="1" seed="256"></feTurbulence>
			<feDisplacementMap in="blur" in2="waves" scale="0.5" xChannelSelector="R" yChannelSelector="B" result="ripples"></feDisplacementMap>
			<feComposite in="waves" in2="ripples" operator="arithmetic" k1="1" k2="0" k3="1" k4="0"></feComposite>
		</filter>

		<filter id="noise2x">
			<feGaussianBlur in="SourceGraphic" stdDeviation="0.25" result="blur" />
			<feTurbulence result="waves" type="turbulence" baseFrequency="2.173 1.977" numOctaves="4" seed="128"></feTurbulence>
			<feDisplacementMap in="blur" in2="waves" scale="2" xChannelSelector="R" yChannelSelector="B" result="ripples"></feDisplacementMap>
			<feComposite in="waves" in2="ripples" operator="arithmetic" k1="1" k2="0" k3="1" k4="0"></feComposite>
		</filter>

		<filter id="highlight" x="0" y="0" width="200%" height="200%">
			<feDropShadow dx="0.25" dy="0.5" stdDeviation="0.1" flood-color='hsl(230 60% 60%)' flood-opacity="0.75" />
			<feDropShadow dx="0.125" dy="0.25" stdDeviation="0.05" flood-color='hsl(230 60% 60%)' flood-opacity="0.75" />
		</filter>

		<!-- https://css-tricks.com/adding-shadows-to-svg-icons-with-css-and-svg-filters/#aa-inset-shadows -->
		<filter id="innerShadow">
			<feOffset dx="1.25" dy="1.25" />
			<feGaussianBlur stdDeviation="0.75" result="offset-blur" />
			<feComposite operator="out" in="SourceGraphic" in2="offset-blur" result="inverse" />
			<feFlood flood-color="black" flood-opacity="0.95" result="color" />
			<feComposite operator="in" in="color" in2="inverse" result="shadow" />
			<feComposite operator="over" in="shadow" in2="SourceGraphic" />
		</filter>

		<!-- Petite Patterns by Bence Szabo: https://codepen.io/finnhvman/details/qBPGRgr -->
		<!-- Sorry just way too greedy for 24 elements!
		<filter id="rock">
			<feTurbulence type="fractalNoise" baseFrequency=".0125" numOctaves="1" />
			<feMorphology radius="8" operator="dilate" />
			<feConvolveMatrix kernelMatrix="9 0 -9" order="1 3" preserveAlpha="true" />
			<feColorMatrix values="
								   .4 0 0 0 0
								   .9 0 0 0 0
								   .9 0 0 0 0
								    0 0 0 0 1" />
		</filter>
		<filter id="rockMini">
			<feTurbulence type="fractalNoise" baseFrequency=".02" numOctaves="1" />
			<feMorphology radius="1" operator="dilate" />
			<feConvolveMatrix kernelMatrix="9 0 -9" order="1 3" preserveAlpha="true" />
			<feColorMatrix values="
								   .5 0 0 0 0
								   .7 0 0 0 0
								   .9 0 0 0 0
								    0 0 0 0 1" />
		</filter>
		-->
	</defs>
</svg>

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 130.3 130.3" aria-hidden="true" class="visually-hidden">
	<g id="sven-badge">
		<path fill="var(--bg-fill,#fbb03b)" stroke="#39106d" stroke-miterlimit="10" stroke-width="5" d="M109.3 21 65.1 2.7 21 21 2.7 65.1 21 109.3l44.1 18.3 44.2-18.3 18.3-44.2L109.3 21z" />
		<path fill="#7c3c2f" d="M94.4 55.6 82 49.9H48.3l-12.4 5.7-6.8 11.1v34.2h72.1V66.7l-6.8-11.1z" />
		<path fill="#31393f" d="M101.2 100.9H29.1l-1.8 1.7v1.8H103v-1.8l-1.8-1.7z" />
		<path fill="#31393f" d="M29.1 94.6h72.2v3.6H29.1z" />
		<path fill="#31393f" d="M64.1 89.6h2v14.8h-2z" />
		<path fill="#f2f2f2" d="m82.1 20.8-6-5 3.2 5.8.8 4.6-6.7 5.6H56.9l-6.7-5.6.8-4.6 3.2-5.8-6 5-1.9 6.5 7.2 9.2h23.3l7.2-9.2-1.9-6.5z" />
		<path id="Face" fill="#c7b299" d="M83.3 44.6H47l-1.7 4H85l-1.7-4z" />
		<path id="Eyebrows" fill="#ed1c24" d="M51.1 47h28v-4h-28v4Z" />
		<path fill="#616f7c" d="m74.3 25.3-9.2-4.6-9.1 4.6-7.8 15.5h33.9l-7.8-15.5z" />
		<path fill="#b2151b" d="M85 48.6H45.3l-5.1 11.5L45.3 77l19.8 14.8L85 77l4.6-16.9L85 48.6z" />
		<path fill="#ed1c24" d="m74.7 48.7-9.6-1.6-9.5 1.6-4.5 8 1.1 3.7 7.3-6.2 2.3 1.4 3.3-1.7 3.4 1.7 2.3-1.4 7.3 6.2 1.1-3.7-4.5-8z" />
		<path id="Nose" fill="#c7b299" d="m65.1 45.2-4.5 2.7 4.5 4.1 4.6-4.1-4.6-2.7z" />
		<path fill="#31393f" d="m83.3 40.9-5.7-.5-12.5-.1-12.4.1-5.7.5-1 3.7 9.6.5 9.5.2 9.6-.2 9.6-.5-1-3.7z" />
		<path fill="#c6e3fc" d="M64.4 40.3h1.5V20.7l-.8-.4-.7.4v19.6z" />
		<path fill="#39106d" d="M3.5 107.1h123.3v23.2H3.5z" />
		<!-- 		<text fill="#fbb03b" font-family="Cabin, GillSans, 'Gill Sans'" font-size="15" x="50%" y="123" text-anchor="middle"></text> -->
	</g>
</svg>
              
            
!

CSS

              
                // Resets and stuff
*,
*::before,
*::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

[hidden] { display: none !important; }

// Global styling variables
@property --padding {
	syntax: '<length>';
	inherit: true;
	initial-value: 0px;
}

:root {
	--font-alpha: 'Cabin', system-ui, sans-serif;
	--font-runic: "Noto Sans Runic", system-ui;
	--bg: hsl(190 8.6% 27.5%);
	--bg2: hsl(173.3 22% 8%);
	--bg-light: hsl(190 8.6% 55%);
	--frame-bg: hsl(20 67% 17%);
	--frame-bg-dark--values: 20 75% 10%;
	--frame-bg-dark: hsl(var(--frame-bg-dark--values));
	--frame-color: hsl(36 88% 75%);
	--frame-size: calc(var(--padding) * 0.75);
	--box-shadow:
		inset 1px 2px 4px 2px hsl(20 50% 5% / 0.25),
		1px 2px 4px 2px hsl(20 50% 5% / 0.5);
	--hue-warning: 50;
	--hue-wrong: 10;
	--hue-correct: 140;
	--text: white;
	--accent: gold;
	--accent-gradient: #BF953F, #FCF6BA, #B38728, #FBF5B7, #AA771C;
	--heading-font-size: clamp(1.875rem, 1.25rem + 2.25vw, 3.5rem);
	--rune-font-size: clamp(1.75rem, 1.25rem + 5vw, 3.25rem);
	--padding: 2rem;
	--transition: 200ms ease-in-out;
	
	@media (prefers-reduced-motion) {
		--transition: 0.01ms;
	}
	
	/* ⬇️ https://www.joshwcomeau.com/shadow-palette/ ⬇️ */
	--shadow-color: 20deg 25% 8%;
	--shadow-short:
		0.7px 0.5px 1px hsl(var(--shadow-color) / 0.29),
		2.1px 1.4px 2.8px -0.8px hsl(var(--shadow-color) / 0.29),
		5.1px 3.5px 7px -1.7px hsl(var(--shadow-color) / 0.29),
		12.3px 8.4px 16.8px -2.5px hsl(var(--shadow-color) / 0.29);
	--shadow-soft:
		0.6px 0.6px 0.6px hsl(var(--shadow-color) / 1),
		1px 1px 1.1px -0.8px hsl(var(--shadow-color) / 0.99),
		3.9px 3.8px 4.1px -1.7px hsl(var(--shadow-color) / 0.83),
		11.6px 11.5px 12.3px -2.5px hsl(var(--shadow-color) / 0.66),
		26.8px 26.5px 28.3px -3.3px hsl(var(--shadow-color) / 0.5),
		51.8px 51.3px 54.7px -4.2px hsl(var(--shadow-color) / 0.33),
		89px 88.1px 93.9px -5px hsl(var(--shadow-color) / 0.17);
	--shadow-elevated:
		1px 1px 1.1px hsl(var(--shadow-color) / 0.77),
		1.5px 1.5px 1.6px -0.8px hsl(var(--shadow-color) / 0.66),
		4.7px 4.7px 5px -1.7px hsl(var(--shadow-color) / 0.55),
		13.4px 13.4px 14.2px -2.5px hsl(var(--shadow-color) / 0.44),
		30.3px 30.3px 32.1px -3.3px hsl(var(--shadow-color) / 0.33),
		58.3px 58.3px 61.8px -4.2px hsl(var(--shadow-color) / 0.22),
		100px 100px 106.1px -5px hsl(var(--shadow-color) / 0.11);
}

// Viewport
html {
	width: 100%;
	height: 100%;
	overflow-x: clip;
	overflow-y: auto;
	
	font-family: var(--font-alpha);
	color: var(--text);
	accent-color: var(--accent);
	background: var(--bg) linear-gradient(135deg, var(--bg-light), var(--bg2)) fixed;
}

body {
	position: relative;
	
	display: flex;
	flex-direction: column;
    min-height: 100%;
	
	
	&::before {
		content: '';
		position: fixed;
		inset: 0;
		z-index: -1;
		
		pointer-events: none;
		
		// background: var(--bg); // Just to fill the element, the filter will replace all the pixels
		background: var(--rock-texture) repeat 50% 50% / 450px 450px;
		
		mix-blend-mode: screen;
		// filter: url(#rock) blur(2px) opacity(0.33) grayscale(1);
		filter: blur(2px) opacity(0.33) grayscale(1);
	}
}

// Default element styles
h1,
p {
	max-width: 100%;
	hyphens: auto;
}

h1 {
	--overlap-box-padding: 0.125em var(--overlap-box-padding-inline, 0.75em) 0.1625em;
	
	font-weight: 400;
	font-size: var(--heading-font-size);
	letter-spacing: 0.0625em;
	text-transform: uppercase;
	
	& > span {
		color: gold;

		filter: drop-shadow(-0.5px -1px 0.25px hsl(0 0% 90%)) drop-shadow(0.5px 1px 0.25px hsl(0 0% 10%));

		@supports (background-clip: text) {
			background: linear-gradient(120deg, var(--accent-gradient));
			-webkit-background-clip: text;
			background-clip: text;
			color: transparent;
		}
	}
}

p {
	line-height: 1.4;
}
p.runic {
	word-break: break-word;
	hyphenate-character: ''; // Avoid confusion as a new character
}

a {
	color: var(--accent);
	text-decoration-thickness: 2px;
	text-underline-offset: 2px;
	
	&:is(:hover, :focus) {
		color: var(--text);
	}
}

button {
	appearance: none;
	
	&:where(:not(.stone):not(.tile)) {
		--border-thickness: 1px;
		
		isolation: isolate;
		position: relative;
		
		padding: 0.25em 0.5em;

		font: inherit;
		text-transform: uppercase;
		letter-spacing: 0.125em;
		color: var(--frame-bg);
		text-shadow: 0 1px 0 var(--text-shadow-color, var(--accent));
		border: var(--border-thickness) solid var(--frame-bg);
		border-image: linear-gradient(120deg, var(--accent-gradient)) 1 / var(--border-thickness) round;
		background: var(--frame-color) linear-gradient(var(--bg-angle, -30deg), var(--accent-gradient));

		&:is(:hover, :focus):where(:not([aria-disabled="true"])) {
			--text-shadow-color: black;
			
			color: var(--frame-color);
			background: var(--frame-bg-dark);
		}
	
		&[aria-disabled="true"] {
			cursor: not-allowed;
			filter: grayscale(1);
		}

		&:focus-visible {
			outline: 2px solid var(--accent);
		}
		
		&::before {
			--size: calc(var(--border-thickness, 2px) * 2);
			--offset: calc(var(--size, 2px) + var(--border-thickness));
			--cut: calc(var(--offset) * 3);
			
			content: '';
			
			position: absolute;
			inset: calc(var(--offset) * -1);
			z-index: -1;
			
			background: linear-gradient(-60deg, var(--accent-gradient));
			
			filter: brightness(0.75);
			mask-image: // Only keep the pixels outside the button's edge
				linear-gradient(to top, red var(--size), transparent 0),
				linear-gradient(to bottom, red var(--size), transparent 0),
				linear-gradient(to left, red var(--size), transparent 0),
				linear-gradient(to right, red var(--size), transparent 0);
			clip-path: polygon(
				var(--cut) 0,
				calc(100% - var(--cut)) 0,
				100% var(--cut),
				100% calc(100% - var(--cut)),
				calc(100% - var(--cut)) 100%,
				var(--cut) 100%,
				0 calc(100% - var(--cut)),
				0 var(--cut)
			);
		}
	}
}

.large-button {
	--border-thickness: 2px;
	--bg-angle: 60deg;
	
	font-size: 2em;
	line-height: 1.2;
}

// Top Nav area
header {
	position: relative;
	z-index: 2;
	
	background: var(--bg2);
}

header > nav {
	max-width: 40rem;
	margin-inline: auto;
}

.menu {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-evenly;
	
	list-style: none;
}

.menu-item {
	width: max-content;
}

.menu-link {
	position: relative;
	
	display: block;
	padding: calc(var(--padding) / 2);
	
	font-size: 1.5rem;
	color: var(--menu-item-color, var(--text));
	text-decoration: none;
	
	&::before {
		--size: 4px;
		
		content: '';

		position: absolute;
		inset-block-end: 0;
		inset-inline: 0;
		height: var(--size);

		clip-path: polygon(var(--size) 0, calc(100% - var(--size)) 0, 100% 100%, 0 100%);
		background: var(--menu-item-indicator, var(--bg));
	}
	
	&:where(:hover, :focus) {
		--menu-item-indicator: var(--bg-light);
	}
	
	&[aria-current="true"] {
		--menu-item-color: var(--accent);
		--menu-item-indicator: linear-gradient(150deg, var(--accent-gradient));
	}
	
	&[data-off] {
		cursor: not-allowed;
		text-decoration: line-through;
		filter: grayscale(1);
	}
}

// Content area
main {
	display: grid;
	grid-template-columns: 1fr;
	grid-template-rows: 1fr;
	justify-items: center;
	align-items: center;
	align-content: center;
	margin-block: auto;
	max-width: 100%;
	padding: var(--padding);
}

section {
	position: relative;
	isolation: isolate;
	container-name: section;
	container-type: inline-size;
	
	grid-row: 1 / -1;
	grid-column: 1 / -1;
	display: grid;
	flex-direction: column;
	align-items: center;
	gap: calc(var(--padding) / 2);
	width: min(100%, 64rem);
	max-width: 100%;
	max-height: 999vh; // Ludicrous, on purpose!
	padding: var(--padding);
	
	border: 1px solid transparent; // Add a border so Chrome renderes the image, I think?
	border-image: var(--frame-image) 58 57 / var(--frame-size) round;
	background: hsl(20deg 67% 17%);
	box-shadow: var(--shadow-soft);
	
	transition: var(--transition);
	
	@media (prefers-reduced-motion) {
		transition-duration: 0.01ms;
	}
	
	main:has(header + &) &:has(> h1:first-child) {
		margin-block-start: var(--heading-font-size);
	}
}

#futhark {
	--row: 1;
	--yeet: -100vw;
}
#learn {
	--row: 2;
	--yeet: 100vw;
}

// "Tab" "handling"
section[aria-hidden="true"] {
	z-index: -1;
	
	max-height: 50vh;
	
	user-select: none;
	pointer-events: none;
	
	opacity: 0;
	transform: translateX(var(--yeet, 0px)) scale(0.5);
}

/*/ This is slower than the other approach so… bye!
@supports selector(main:has(> #learn[aria-hidden='true'])) {
	main {
		grid-template-rows: var(--futhark-size, 1fr) var(--learn-size, 1fr);
		transition: grid-template-rows var(--transition), padding var(--transition);
	}
	
	main:has(#futhark[aria-hidden="true"]) {
		--futhark-size: 0fr;
	}
	
	main:has(#learn[aria-hidden="true"]) {
		--learn-size: 0fr;
	}
	
	section {
		grid-row: var(--row);
		min-height: 0;
	}
	
	section[aria-hidden="true"] {
		--padding: 0px;
	}
} //*/

.section-overlap-box {
	--offset: calc(-0.375em - var(--frame-size) - var(--padding) / 2);
	--border: 2px;
	
	position: relative;
	
	margin-inline: auto;
	padding: var(--overlap-box-padding, 0.5em var(--overlap-box-padding-inline, 1.5em));
	
	text-align: center;
	line-height: 1em;
		
	border: var(--border) solid var(--frame-color);
	background: var(--frame-bg);
	box-shadow: var(--box-shadow);
	
	&:first-child {
		margin-block-start: var(--offset);
		margin-block-end: 0;
	}
	
	&:last-child {
		margin-block-start: 0;
		margin-block-end: var(--offset);
	}
	
	&::after {
		content: '';
		
		position: absolute;
		inset: 0;
		
		pointer-events: none;
		
		background:
			linear-gradient(135deg, var(--frame-color) 50%, transparent 0) 0 0,
			linear-gradient(-135deg, var(--frame-color) 50%, transparent 0) 100% 0,
			linear-gradient(45deg, var(--frame-color) 50%, transparent 0) 0 100%,
			linear-gradient(-45deg, var(--frame-color) 50%, transparent 0) 100% 100%,
			;
		background-size: calc(var(--border) * 3) calc(var(--border) * 3);
		background-repeat: no-repeat;
		
		outline: 1px solid var(--frame-color);
		outline-offset: calc(var(--border) * -1.5); 
	}
	
	@container section (max-width: 16rem) {
		--overlap-box-padding-inline: 0.5em;
	}
}

.content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: calc(var(--padding));
	padding-block: calc(var(--padding) / 2);
	
	transition: 0s;
	
	& > * { margin-block: 0; }
}

.text-center { text-align: center; }

// Stone grid
.grid {
	display: grid;
	// grid-template-columns: repeat(auto-fill, minmax(4rem, 1fr));
	grid-template-columns: repeat(var(--c, 12), minmax(3.5rem, 1fr));
	gap: 1.5em 1em;
	width: 100%;
	
	// Art-directed: I want every row to have the same number of items. 24 glyphs divides nicely between 12, 8, 6, 4, 3, 2, and 1
	@media (max-width: 66rem) { --c: 8; }
	@media (max-width: 50rem) { --c: 6; }
	@media (max-width: 38rem) { --c: 4; }
	@media (max-width: 26rem) { --c: 3; }
	@media (max-width: 22rem) { --c: 2; }
	@media (max-width: 17.5rem) { --c: 1; }
}

.stone {
	--angle: var(--a, 0);
	
	&:hover {
		--angle: calc(-1 * var(--a, 0));
	}
	
	position: relative;
	
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5em;
	padding: 1em 1.25em;
	overflow: hidden;
	
	list-style: none;
	text-align: center;
	
	color: inherit;
	background-color: hsl(var(--h, 240) var(--s, 60%) var(--l, 30%));
	border: 0;
	border-radius: var(--r, 25%);
	box-shadow:
		// Inner shadows
		inset -0.125em -0.125em 2px hsl(var(--stone-shadow-hue, var(--h, 240)) 75% 20% / 0.9),
		inset -0.25em -0.25em 0.5em hsl(var(--stone-shadow-hue, var(--h, 240)) 82% 15% / 0.75),
		inset -0.5em -1em 2em hsl(var(--stone-shadow-hue, var(--h, 240)) 90% 10% / 0.5),
		
		// Inner highlights
		inset 1px 1px 1px hsl(var(--stone-shadow-hue, var(--h, 240)) 75% 90% / 0.9),
		inset 0.25em 0.25em 0.75em hsl(var(--stone-shadow-hue, var(--h, 240)) 82% 85% / 0.75),
		inset 0.5em 0.5em 3em hsl(var(--stone-shadow-hue, var(--h, 240)) 90% 80% / 0.5),
		
		// Drop shadow
		var(--shadow, var(--shadow-soft));
	
	transform: rotate(calc(var(--angle, 0) * 1deg)) translateX(calc(var(--x, 0) * 1px)) translateY(calc(var(--y, 0) * 1px));
	transition: var(--transition);
	
	&.has-alt :is([data-rune-default], [data-rune-alt]) { transition: var(--transition); }
	
	&.is-alt {
		--angle: calc(var(--a, 0) * -1);
		--l: 45%;
	}
	
	&.has-alt:not(.is-alt) [data-rune-alt],
	&.has-alt.is-alt [data-rune-default] {
		opacity: 0;
		user-select: none;
	}
	
	& > * {
		position: relative;
	}
	
	&::before {
		--stone-bg: var(--rock-texture) repeat calc(1%*var(--px, 50)) calc(1%*var(--py, 50)) / 200% 200%;
		content: '';

		position: absolute;
		inset: -20px;
		aspect-ratio: 1;

		background: var(--stone-bg), var(--stone-bg);
		background-blend-mode: screen, normal;

		mix-blend-mode: soft-light;
		// filter: url(#rockMini) blur(0.5px) opacity(0.9);
		filter: contrast(90%) opacity(0.8);
		transform: scale(2) rotate(calc(var(--ta, 0) * 1deg));
	}
}

.tile {
	--tile-border: var(--text);
	--tile-bg: var(--frame-color);
	--tile-text: var(--bg2);
	--tile-depth: 3px;
	--tile-shadow: 3px;
	
	padding-block: calc(var(--p, 0.5rem) / 2);
	padding-inline: var(--p, 0.5rem);
	
	font-size: 1.25em;
	color: var(--tile-text);
	border-radius: 4px;
	border: 1px solid var(--tile-border);
	background: var(--tile-bg);
	box-shadow: 0 var(--tile-shadow, var(--tile-depth)) 0 var(--tile-border);
	
	transition: var(--transition);
	
	&[aria-pressed="false"] {
		&:is(:hover, :focus) {
			--tile-shadow: 0px;
			transform: translateY(var(--tile-depth));
		}
	}
	
	&[aria-pressed="true"] {
		--tile-border: var(--bg);
		--tile-bg: var(--bg2);
		--tile-text: var(--tile-border);
		--tile-shadow: 0px;
		
		cursor: not-allowed;
	}
	
	[data-answer='wrong'] & {
		--tile-border: hsl(var(--hue-wrong) 80% 50%);
		--tile-text: var(--tile-border);
		--tile-bg: hsl(var(--hue-wrong) 50% 15%);
		
		animation: failWave 500ms cubic-bezier(.66,0,.5,.5) 0ms 1;
	}
	
	[data-answer='correct'] & {
		--tile-border: hsl(var(--hue-correct) 80% 50%);
		--tile-text: var(--tile-border);
		--tile-bg: hsl(var(--hue-correct) 50% 15%);
		
		animation: successWave 800ms cubic-bezier(.66,0,.5,.5) calc(75ms * var(--tile-index)) 1;
	}
}

@keyframes successWave {
	// I realised after the fact this is the same animation as Wordle but I like it so I'm keeping it
	0% { transform: translateY(0); }
	33% { transform: translateY(-50%); animation-timing-function: linear; }
	67% { transform: translateY(50%); animation-timing-function: linear; }
	100% { transform: translateY(0); animation-timing-function: cubic-bezier(.5,.5,.33,1); }
}

@keyframes failWave {
	0% { transform: translateX(0); }
	20%, 60% { transform: translateX(-1rem); animation-timing-function: ease-in-out; }
	40%, 80% { transform: translateX(1rem); animation-timing-function: ease-in-out; }
	100% { transform: translateX(0); animation-timing-function: cubic-bezier(.5,.5,.33,1); }
}

.runic { font-family: var(--font-runic); }
.alpha { text-transform: uppercase; }
.large-letter { font-size: calc(1.5 * var(--rune-font-size, 3.25em)); }
.single-flat-word.large-letter { font-size: calc(1.25 * var(--rune-font-size, 3.25em)); }

.glyph-rune {
	width: 1em;
	height: 1em;
	overflow: visible;
	
	font-size: var(--rune-font-size, 3.25em);
	filter: url(#innerShadow);
	
	& > text {
		fill: url(#gold);
		
		filter: url(#noise) url(#highlight) Grayscale(var(--stone-glyph-gray, 0)) brightness(calc(1 + 0.25 * var(--stone-glyph-gray, 0)));
		transition: var(--transition);
		
		&::selection {
			filter: none;
		}
	}
}

.single-flat-glyph { // Not used
	--shadow-color: 21deg 100% 8%;
	--fill: hsl(35 50% 34%);
	
	display: flex;
	justify-content: center;
	align-items: center;
	width: 1.75em;
	aspect-ratio: 1;
	padding: 0.25em;
	
	line-height: 1;
	text-align: center;

	color: var(--bg2);
	border: 2px solid var(--accent);
	border-radius: 50%;
	background: linear-gradient(-120deg, var(--accent-gradient)), linear-gradient(var(--fill), var(--fill));
	background-blend-mode: soft-light, normal;
	box-shadow: inset 3px 3px 6px hsl(var(--shadow-color) / 0.25), var(--shadow-short);
	
	& > span {
		--shadow-color: 47deg 77% 26%;
		
		line-height: 1.1; // Ensures taller characters don't get cut off
		
		filter:
			drop-shadow(-1px -1px 0 white)
			drop-shadow(1px 1px 0 black)
			drop-shadow(1px 1px 0 black)
			drop-shadow(1px 1px 0 black)
			drop-shadow(0.7px 0.5px 1.3px hsl(var(--shadow-color) / 0.25))
			drop-shadow(5px 3.4px 9.1px hsl(var(--shadow-color) / 0.50))
			drop-shadow(14.5px 9.9px 26.3px hsl(var(--shadow-color) / 0.75));
		
		@supports (background-clip: text) {
			color: transparent;
			background: linear-gradient(120deg, var(--accent-gradient));
			-webkit-background-clip: text;
			background-clip: text;
		}
	}
	
	& > .smol {
		transform-origin: 50% 30%;
	 	transform: scale(1.5);
	}
}

.single-flat-word {
	color: var(--accent);
	text-shadow:
		1px 1px 0 #936900,
		0px 1px 0px hsl(var(--frame-bg-dark--values) / 1),
		1px 2px 0.5px hsl(var(--frame-bg-dark--values) / 0.8),
		2px 4px 1px hsl(var(--frame-bg-dark--values) / 0.7),
		3px 6px 2px hsl(var(--frame-bg-dark--values) / 0.6),
		4px 8px 4px hsl(var(--frame-bg-dark--values) / 0.5),
		5px 12px 6px hsl(var(--frame-bg-dark--values) / 0.25),
}

// Exercise-related styles
.match-grid {
	display: grid;
	grid-template-columns: repeat(var(--c, 4), minmax(2rem, 1fr));
	gap: calc(var(--padding) / 1.5);
	list-style: none;
	
	@media (max-width: 32rem) { --c: 2; }
	@media (max-width: 20rem) { --c: 1; }
}

button.stone {
	transform: scale(var(--scale, 1.0000001));
	transition: 200ms ease-in-out;
	
	&:not([aria-disabled="true"]):where(:hover, :focus) {
		--shadow: var(--shadow-elevated);
		--l: 45%;
		--scale: 1.1;	
	}
	
	&[aria-pressed="true"] {
		--h: 42 !important; // Overwrites the inline custom property
		--stone-shadow-hue: 30;
		--l: 35%;
		--shadow: var(--shadow-elevated);
		--stone-glyph-gray: 1;
		
		--scale: 1.2;
	}
	
	&[aria-disabled="true"]:not([data-answer]) {
		--stone-shadow-hue: var(--h);
		--s: 0%;
		--l: 20;
		--stone-glyph-gray: 1;
		--scale: 0.9;
	}
	&[data-answer] {
		--stone-shadow-hue: var(--h);
		--stone-glyph-gray: 0;
	}
	&[data-answer="wrong"] {
		--h: 0 !important; // Overwrites the inline custom property
		--l: 35%;
		--scale: initial;
	}
	&[data-answer="correct"] {
		--h: 140 !important; // Overwrites the inline custom property
		--scale: 1.25;
	}
}

.glyphbank {
	--p: 0.5rem;
	--lh: calc(2.5em + var(--p));
	
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	min-width: 8rem;
	
	min-height: var(--lh);
	width: 100%;
	gap: 0 0.5em;
	
	line-height: var(--lh);
}

.glyphbank.is-added {
	max-width: min(100%, 24rem);
	padding-inline: 0.5em;
	
	background: linear-gradient(to bottom,
		transparent 4px,
		rgb(0 0 0 / 0) 0,
		67%,
		rgb(0 0 0 / 0.25) calc(var(--lh) - 2px),
		currentColor 0
	) repeat 0 0 / 100% var(--lh);
}

// .glyphbank.is-idle {}

.sven-info {
	--bg-fill: #fbb03b;
	--grow: clamp(0px, 3vw, 20px);
	--sven-offset: calc(var(--padding) * -0.5 - var(--grow));
	--sven-size: calc(var(--frame-size) + var(--padding) * 1.5 + var(--grow));
	
	position: absolute;
	inset-block-start: var(--sven-offset);
	inset-inline-end: var(--sven-offset);
	
	width: var(--sven-size);
	height: var(--sven-size);
	
	opacity: 1;
	filter: drop-shadow(2px 2px 2px hsl(0 0% 0% / 0.6)) drop-shadow(4px 4px 4px hsl(0 0% 0% / 0.3));
	transform: scale(1) rotate(15deg);
	animation: scaleIn 600ms cubic-bezier(.2, 1.8, 0, 1) 200ms backwards;
	
	@media (prefers-reduced-motion) {
		animation: none;
	}
	
	& > text {
		font-family: var(--font-alpha);
		fill: var(--accent);
	}
}

@keyframes scaleIn {
	from {
		opacity: 0;
		transform: scale(0) rotate(0deg);
	}
}

.msg-warning,
.msg-wrong,
.msg-correct {
	width: 100%;
	max-width: min(100%, 20rem);
	padding: calc(var(--padding) / 2);
	
	text-align: center;
	color: hsl(var(--h, 240) 100% 50%);
	background: hsl(var(--h, 240) 10% 10% / 0.25);
	border: 2px solid hsl(var(--h, 240) 30% 20%);
}

.msg-warning { --h: var(--hue-warning); }
.msg-wrong { --h: var(--hue-wrong); }
.msg-correct { --h: var(--hue-correct); }

// Footer styles
footer {
	position: relative;
	z-index: 2;
	
	color: var(--frame-color);
	background: var(--frame-bg);
}

footer > p {
	max-width: 40rem;
	margin-inline: auto;
	padding: calc(var(--padding) / 4) calc(var(--padding) / 2);
	
	text-align: center;
}

// Hide stuff
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
}

// Inlined image for the content frame — tucking it at the end since it's so dang long
:root {
	// Repurposed this frame from my poster: https://chriskirknielsen.com/designs/god-of-war/
	--frame-image:   url('data:image/png;base64,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');
}
:root {
	--rock-texture: url("data:image/jpeg;base64,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");
}
              
            
!

JS

              
                // Helpers
const _NS = {
  svg: 'http://www.w3.org/2000/svg',
  html: 'http://www.w3.org/1999/xhtml',
  xml: 'http://www.w3.org/XML/1998/namespace',
  xlink: 'http://www.w3.org/1999/xlink',
  xmlns: 'http://www.w3.org/2000/xmlns/'
}
const createSvgEl = (tagName) => {
	const el = document.createElementNS(_NS.svg, tagName);
	if (tagName === 'svg') {
		el.setAttribute('xmlns', 'http://www.w3.org/2000/svg');
	}
	return el;
};
const setSvgAttr = (svgEl, attrs) => {
	const keyValPairs = Object.entries(attrs);
	for (let pair of keyValPairs) {
		const key = pair[0];
		const value = pair[1];

		if (key.indexOf(':') > -1 && svgEl.tagName.toUpperCase() !== 'SVG') {
			const ns = key.split(':').pop()[0].trim().toLowerCase();
			svgEl.setAttributeNS(_NS[ns], key, String(value));
		} else {
			svgEl.setAttribute(key, String(value));
		}
	}
};
const getRandom = (min = 0, max = 1) => Math.floor(Math.random() * (max - min + 1) + min);
const minRadius = 33;
const maxRadius = 75;
const getRandomRadius = () => getRandom(minRadius, maxRadius);
const randomItem = (array) => array[Math.floor(Math.random() * array.length)];
const randomSlice = (array, size = -1) => {
	if (size === -1) { size = array.length; } // Randomise order
    let shuffled = array.slice(0), i = array.length, min = i - size, temp, index;
    while (i-- > min) {
        index = Math.floor((i + 1) * Math.random());
        temp = shuffled[index];
        shuffled[index] = shuffled[i];
        shuffled[i] = temp;
    }
    return shuffled.slice(min);
}

// Data
const elderFuthark = [ // Thanks to Wikipedia's contributors for this neat list
    { rune: 'ᚠ', alphabet: 'f', meaning: `"cattle; wealth"` },
    { rune: 'ᚢ', alphabet: 'u', meaning: `"aurochs", Wild ox (or *ûram "water/slag"?)` },
    { rune: 'ᚦ', alphabet: 'þ', altAlphabet: 'th', meaning: `"Thurs" (see Jötunn) or *þunraz ("the god Thunraz")` },
    { rune: 'ᚨ', alphabet: 'a', meaning: `"god"` },
    { rune: 'ᚱ', alphabet: 'r', meaning: `"ride, journey"` },
    { rune: 'ᚲ', alphabet: 'k', meaning: `"ulcer"? (or *kenaz "torch"?)`, isSmol: true },
    { rune: 'ᚷ', alphabet: 'g', meaning: `"gift"` },
    { rune: 'ᚹ', alphabet: 'w', meaning: `"joy"` },
    { rune: 'ᚺ', altRune: 'ᚻ', alphabet: 'h', meaning: `"hail" (the precipitation)` },
    { rune: 'ᚾ', alphabet: 'n', meaning: `"need"` },
    { rune: 'ᛁ', alphabet: 'i', meaning: `"ice"` },
    { rune: 'ᛃ', alphabet: 'j', meaning: `"year, good year, harvest"`, isSmol: true },
    { rune: 'ᛇ', alphabet: 'ï', altAlphabet: 'æ', meaning: `"yew-tree"` },
    { rune: 'ᛈ', alphabet: 'p', meaning: `meaning unknown; possibly "pear-tree".` },
    { rune: 'ᛉ', alphabet: 'z', meaning: `"elk" (or "protection, defence")` },
    { rune: 'ᛊ', altRune: 'ᛋ', alphabet: 's', meaning: `"sun"` },
    { rune: 'ᛏ', alphabet: 't', meaning: `"the god Tiwaz"` },
    { rune: 'ᛒ', alphabet: 'b', meaning: `"birch"` },
    { rune: 'ᛖ', alphabet: 'e', meaning: `"horse"` },
    { rune: 'ᛗ', alphabet: 'm', meaning: `"man"` },
    { rune: 'ᛚ', alphabet: 'l', meaning: `"water, lake" (or possibly *laukaz "leek")` },
    { rune: 'ᛜ', alphabet: 'ŋ', meaning: `"the god Ingwaz"`, isSmol: true },
    { rune: 'ᛟ', alphabet: 'o', meaning: `"heritage, estate, possession"` },
    { rune: 'ᛞ', alphabet: 'd', meaning: `"day"` }
];
const words = [ // Objects represented as { RunicString:EnglishString }
    { word: 'odin', trap: ['u'], level: 1 },
    { word: 'þor', spellings: ['thor'], level: 1 },
    { word: 'loks', spellings: ['lox'], trap: ['g'], level: 1 },
	{ word: 'midgard', hyphenated: ['mid','gard'], level: 2 },
	{ word: 'ragnarok', hyphenated: ['rag','na','rok'], level: 2 },
	{ word: 'freja', spellings: ['freya', 'freja'], level: 2 },
	{ word: 'jormungandr', hyphenated: ['jor','mun','gandr'], level: 3 },
	{ word: 'ratatoskr', hyphenated: ['rata','toskr'], level: 2 },
	{ word: 'fenrir' },
];
let previousWord = false;
const correctMessages = [
	'By Odin’s beard, great job!', 'We got a winner!', 'Someone’s been studying!', 'Excellent!', 'That is indeed correct!', 'You’re crushing it!', 'Are you a Viking? Too easy for you!'
];
const incorrectMessages = [
	'Sorry, that wasn’t it.', 'Ah, you almost had it!', 'You’ll get it next time!', 'Study the stones again and you’ll ace this!', 'Incorrect, but give it another go!'
];

function generateStone(glyphData) {
	const index = parseInt(glyphData.index, 10);
	const hideTranslation = glyphData.hideTranslation || false;
	const swapSystems = glyphData.swapSystems || false;
	const useAltAlpha = glyphData.useAltAlpha || false;
	let hue = getRandom(210, 250);
	let angle = (!glyphData.altRune || swapSystems) ? getRandom(-3, 3) : (3 * (Math.random() < 0.5 ? -1 : 1)); // Runes with alts should always been runed to the max on either side so the toggle to an alt run is more obvious
	let textureAngle = (index * 73) % 360;
	let x = getRandom(-4, 4);
	let y = getRandom(-4, 4);
	let px = getRandom(0, 100);
	let py = getRandom(0, 100);
	let radius = `${getRandomRadius()}% ${getRandomRadius()}% ${getRandomRadius()}% ${getRandomRadius()}%`;
	const defaultFontSize = 16;
	const defaultTextY = 14;

	let stone = glyphData._element || document.createElement(glyphData._tag || 'li');
	stone.classList.add('stone');
	stone.style.setProperty('--i', index);
	stone.style.setProperty('--a', angle);
	stone.style.setProperty('--x', x);
	stone.style.setProperty('--y', y);
	stone.style.setProperty('--px', px);
	stone.style.setProperty('--py', py);
	stone.style.setProperty('--h', hue);
	stone.style.setProperty('--r', radius);
	stone.style.setProperty('--ta', textureAngle);
	if (glyphData.isSmol && !swapSystems) {
		stone.classList.add('smol');
	}

	let rune = createSvgEl('svg');
	rune.classList.add('glyph-rune');
	rune.classList.add((swapSystems) ? 'alpha' : 'runic');
	rune.setAttribute('viewBox', '0 0 16 16');
	rune.setAttribute('width', '16');
	rune.setAttribute('height', '16');

	let runeText = createSvgEl('text');
	let textY = (!swapSystems && glyphData.isSmol) ? 16 : (swapSystems && glyphData.alphabet == 'ŋ' ? defaultTextY*0.925 : defaultTextY);
	let textSize = (!swapSystems && glyphData.isSmol) ? 20 : defaultFontSize;
	rune.append(runeText);
	runeText.setAttribute('text-anchor', 'middle');
	runeText.setAttribute('x', '50%');
	runeText.setAttribute('y', textY.toString());
	runeText.setAttribute('font-size', textSize.toString());
	if (glyphData.altRune && !swapSystems) {
		stone.classList.add('has-alt');
		runeText.setAttribute('data-rune-default', '');
	}
	runeText.innerHTML = swapSystems ? (useAltAlpha ? glyphData.altAlphabet : glyphData.alphabet) : glyphData.rune;
	stone.append(rune);
	
	if (glyphData.altRune && !swapSystems) {
		let altRuneText = createSvgEl('text');
		let altTextY = 16;
		let textSize = (!swapSystems && glyphData.isSmol) ? 20 : 16;
		rune.append(altRuneText);
		altRuneText.setAttribute('text-anchor', 'middle');
		altRuneText.setAttribute('x', '50%');
		altRuneText.setAttribute('y', defaultTextY);
		altRuneText.setAttribute('font-size', defaultFontSize);
		altRuneText.setAttribute('data-rune-alt', '');
		altRuneText.innerHTML = glyphData.altRune;
	}

	if (!hideTranslation) {
		let alpha = document.createElement('span');
		alpha.classList.add('alpha');
		alpha.innerText = swapSystems ? glyphData.rune : glyphData.alphabet;
		stone.append(alpha);
	}
	
	return stone;
}

function generateSven(text, bgOverride = null) {
	const svg = createSvgEl('svg');
	setSvgAttr(svg, {
		'xmlns:xlink': 'http://www.w3.org/1999/xlink',
		'width': 130,
		'height': 130,
		'viewBox': '0 0 130 130',
	});
	
	const sven = createSvgEl('use');
	setSvgAttr(sven, {
		'width': '100%',
		'height': '100%',
		'x': '0',
		'y': '0',
		'href': '#sven-badge',
	});
	svg.append(sven);
	
	const textEl = createSvgEl('text');
	textEl.setAttribute('font-size','15');
	textEl.setAttribute('x', '50%');
	textEl.setAttribute('y', '123');
	textEl.setAttribute('text-anchor', 'middle');
	textEl.innerHTML = text;
	svg.append(textEl);
	
	if (bgOverride) {
		svg.style.setProperty('--bg-fill', bgOverride);
	}
	
	return svg;
}

function getRuneFromTranslit(letter) {
		let matchingRunic = elderFuthark.find(f => f.alphabet === letter || f.altAlphabet === letter);
		return matchingRunic.rune;
}

// Show the Futhark stones in a grid
function populateFutharkGrid(){
	const grid = document.querySelector('.grid');
	const glyphs = document.createDocumentFragment();
	
	for (let index = 0; index < elderFuthark.length; index++) {
		const runeData = Object.assign({ index }, elderFuthark[index]);
		const glyph = generateStone(runeData);
		glyphs.append(glyph);
	}
	grid.append(glyphs);
}
populateFutharkGrid();

// Toggle between classic and alternative rune style
const glyphToggler = document.getElementById('show-alt-runes');
function setGlyphStyle() {
	const isAltStyle = glyphToggler.checked;
	const runesWithAlt = Array.from(document.querySelectorAll('#futhark .stone.has-alt'));
	runesWithAlt.forEach(function (glyphStone) {
		glyphStone.classList.toggle('is-alt', isAltStyle);
	})
}
setGlyphStyle(); // Ensure state is properly defined on page load
glyphToggler.addEventListener('change', setGlyphStyle);

// Generate a random exercise
const newExerciseButton = document.getElementById('new-exercise');
const exerciseContent = document.getElementById('exercise');

function makeMatchExercise() {
	const template = document.getElementById('exercise-match').content.cloneNode(true);
	const targetSystem = Math.random() < 0.5 ? 'FUTHARK' : 'ALPHA';
	const allAnswers = randomSlice(elderFuthark, 4);
	const correctAnswer = randomItem(allAnswers);
	let correctOption;
	const optionItems = Array.from(template.querySelectorAll(`[data-match="options"] > [data-match="option"] > button`));
	
	const warningEl = template.querySelector('[data-match="warning"]');
	const resultEl = template.querySelector('[data-match="result"]');
	
	const optionClickHandler = function (e) {
		const wasPressed = e.target.closest('[data-match="option"] > button').getAttribute('aria-pressed') === 'true';
		optionItems.forEach(opt => opt.setAttribute('aria-pressed', 'false'));
		e.target.closest('[data-match="option"] > button').setAttribute('aria-pressed', 'true');

		// Reset warning
		warningEl.innerText = '';
		warningEl.hidden = true;
	};
	const optionKeydownHandler = function (e) {
		// Implement radio behaviour
		const key = e.key;
		const options = e.target.closest('[data-match="options"]');
		
		// Skip to next item
		if (key === 'Tab') {
			e.preventDefault();
			if (e.shiftKey) {
				e.target.closest('.content').focus();
			} else {
				checkAnswerButton.focus();
			}
			return false;
		}
		
		const itemIndex = parseInt(e.target.parentElement.getAttribute('data-index'), 10);
		let newItemIndex = itemIndex;
		
		if (['ArrowRight', 'ArrowDown'].includes(key)) {
			newItemIndex++;
		} else if (['ArrowLeft', 'ArrowUp'].includes(key)) {
			newItemIndex--;
		} else if (key !== 'Space') {
			return;
		}
		
		if (newItemIndex > optionItems.length) { newItemIndex = 1; }
		else if (newItemIndex <= 0) { newItemIndex = optionItems.length; }
		const optionItem = options.querySelector(`[data-match="option"][data-index="${newItemIndex}"] > button`);

		optionItem.focus();
		optionItem.click();
	};
	for (let a = 0; a < allAnswers.length; a++) {
		const answer = allAnswers[a];
		const optionItem = template.querySelector(`[data-match="options"] > [data-match="option"][data-index="${a + 1}"] > button`);
		optionItem.innerText = '';
		generateStone(Object.assign({ _element: optionItem, index: a, hideTranslation: true, swapSystems: targetSystem === 'FUTHARK', useAltAlpha: answer.altAlphabet === 'th' && targetSystem === 'FUTHARK' }, answer));
		if (answer.rune === correctAnswer.rune) { correctOption = optionItem; }
		optionItem.addEventListener('click', optionClickHandler);
		optionItem.addEventListener('keydown', optionKeydownHandler);
	}
	
	const itemToMatch = template.querySelector('[data-match="glyph-to-match"]');
	const glyphToMatch = targetSystem === 'ALPHA' ? (correctAnswer.altAlphabet === 'th' ? correctAnswer.altAlphabet : correctAnswer.alphabet).toUpperCase() : correctAnswer.rune;
	const glyphCssClass = [];
	if (targetSystem === 'FUTHARK') { glyphCssClass.push('runic'); }
	if (targetSystem === 'FUTHARK' && correctAnswer.isSmol) { glyphCssClass.push('smol'); }
	itemToMatch.innerHTML = `<span class="${glyphCssClass.join(' ')}">${glyphToMatch}</span>`
	
	const checkAnswerButton = template.querySelector('[data-match="verify"]');
	const checkAnswerHandler = function (e) {
		const selectedOption = optionItems.find(opt => opt.getAttribute('aria-pressed') === 'true');
		if (!selectedOption) {
			warningEl.hidden = false;
			warningEl.innerText = 'Please select an answer first!';
			warningEl.focus();
			return;
		}
		
		const isCorrect = (correctOption === selectedOption);
		
		checkAnswerButton.setAttribute('aria-disabled', 'true');
		checkAnswerButton.removeEventListener('click', checkAnswerHandler);
		optionItems.forEach(opt => {
			opt.setAttribute('aria-disabled', 'true');
			opt.removeEventListener('click', optionClickHandler);
		});
		
		checkAnswerButton.hidden = true;
		warningEl.hidden = true;
		resultEl.hidden = false;
		
		if (isCorrect) {
			resultEl.classList.add('msg-correct');
			resultEl.innerText = randomItem(correctMessages);
		} else {
			resultEl.classList.add('msg-wrong');
			resultEl.innerText = randomItem(incorrectMessages);
			selectedOption.setAttribute('data-answer', 'wrong');
		}
		
		correctOption.setAttribute('data-answer', 'correct');
		newExerciseButton.focus();
	}
	checkAnswerButton.addEventListener('click', checkAnswerHandler)
	return template;
}

function makeSpellExercise() {
	const template = document.getElementById('exercise-spell').content.cloneNode(true);
	const targetSystem = Math.random() < 0.5 ? 'FUTHARK' : 'ALPHA';
	const wordShown = template.querySelector('[data-spell="word-to-spell"]');
	const prompt = template.querySelector('[data-spell="prompt"]');
	const wordToSpell = randomItem(words.filter(w => w.word !== previousWord)); // Don't show the same twice in a row
	if (!wordToSpell.spellings) { wordToSpell.spellings = [wordToSpell.word]; } // If there is no specified spelling, use the same as the rune transliteration
	if (!Array.isArray(wordToSpell.spellings)) { wordToSpell.spellings = [wordToSpell.spellings]; } // In case I forget to wrap it in a string…
	previousWord = wordToSpell.word;
	
	if (wordToSpell.level > 1) {
		const levelText = wordToSpell.level === 3 ? 'Hard' : 'Medium' ;
		const sven = generateSven(`${levelText} Difficulty`, wordToSpell.level === 3 ? 'hsl(5, 100%, 50%)' : null);
		template.append(sven);
		sven.classList.add('sven-info')
	}
	
	const warningEl = template.querySelector('[data-spell="warning"]');
	const resultEl = template.querySelector('[data-spell="result"]');
	
	const hasTraps = wordToSpell.trap && targetSystem === 'FUTHARK';
	const trapList = hasTraps ? wordToSpell.trap.filter(_ => Math.random() > 0.333) : []; // Keep a random amount of traps (67% chance of keeping one of the traps)
	const trapCount = trapList.length;
	const wordFuthark = wordToSpell.word; // Latin transliteration
	const wordAlpha = wordToSpell.spellings[0]; // Pick the first spelling as the common answer, or prompt
	const wordFutharkInRunic = wordFuthark.split('').map(getRuneFromTranslit).join('');
	wordToSpell.runic = wordFutharkInRunic; // Store the word in runic
	const wordFutharkInRunicHyphenated = (wordToSpell.hasOwnProperty('hyphenated') ? wordToSpell.hyphenated : [wordToSpell.word]).map(h => h.split('').map(getRuneFromTranslit).join('')).join('&shy;');
	const wordAlphaHyphenated = wordToSpell.hasOwnProperty('hyphenated') ? wordToSpell.hyphenated.join('&shy;') : wordAlpha;
	prompt.innerText = prompt.innerText
		.replace('{{type}}', targetSystem === 'FUTHARK' ? 'word' : 'runes')
		.replace('{{glyphs}}', targetSystem === 'FUTHARK' ? 'runes' : 'letters');
	const extraGlyphCount = Math.max(0, getRandom(0, 3) - trapCount) + trapCount; // Randomly add zero to three items
	const extraGlyphData = [];
	for (let g = 1; g <= extraGlyphCount; g++) {
		// Don't add a random 'th' option as it has 2 characters, and the single character is basically a rune in itself
		extraGlyphData.push(randomItem(elderFuthark.filter(l => l.altAlphabet !== 'th')));
	}
	for (let t = 0; t < trapCount ; t++) {
		// Add the trap letter to the list of available letters
		const trapLetter = trapList[t];
		extraGlyphData.push(elderFuthark.find(l => l.alphabet === trapLetter));
	}

	const extraGlyphs = extraGlyphData.map(d => (targetSystem === 'FUTHARK') ? d.rune : d.alphabet);
	const composed = template.querySelector('[data-spell="composed"]');
	const glyphBank = template.querySelector('[data-spell="glyphs"]');
	let glyphBankOptions = [];
	if (targetSystem === 'FUTHARK') {
		glyphBankOptions = glyphBankOptions.concat(wordFutharkInRunic.split(''));
	} else {
		glyphBankOptions = glyphBankOptions.concat(wordAlpha.split(''));
	}
	const randomisedGlyphBankOptions = randomSlice(glyphBankOptions.concat(randomSlice(extraGlyphs)));
	for (let g = 0; g < randomisedGlyphBankOptions.length; g++) {
		let glyphOption = randomisedGlyphBankOptions[g];
		const glyphTileTemplate = document.getElementById('exercise-spell-tile').content.cloneNode(true);
		const glyphTile = glyphTileTemplate.querySelector('[data-spell="glyph"]');
		const tileButton = glyphTile.querySelector('[data-spell="opt-button"]');
		tileButton.classList.add(targetSystem === 'FUTHARK' ? 'runic' : 'alpha');
		glyphTile.setAttribute('data-option-index', g);
		tileButton.innerText = glyphOption;
		glyphBank.append(glyphTile);
	}
	
	const glyphBankClickHandler = function (e) {
		const tileItem = e.target.closest('[data-spell="glyph"]');
		if (!tileItem) { return; }
		const tileButton = tileItem.querySelector('[data-spell="opt-button"]');
		if (tileButton.getAttribute('aria-pressed') === 'true') { return; }
		const clonedItem = tileItem.cloneNode(true);
		tileButton.setAttribute('aria-pressed', 'true');
		tileButton.inert = true;
		console.log(tileButton.inert);
		clonedItem.querySelector('[data-spell="opt-button"]').removeAttribute('aria-pressed');
		composed.append(clonedItem);
	};
	glyphBank.addEventListener('click', glyphBankClickHandler);
	
	const composedClickHandler = function (e) {
		const tileItem = e.target.closest('[data-spell="glyph"]');
		if (!tileItem) { return; }
		const tileIndex = tileItem.getAttribute('data-option-index');
		const glyphBankItem = glyphBank.querySelector(`[data-option-index="${tileIndex}"]`);
		const glyphButtonItem = glyphBankItem.querySelector('[data-spell="opt-button"]');
		glyphButtonItem.setAttribute('aria-pressed', 'false');
		glyphButtonItem.inert = false;
		console.log(glyphButtonItem.inert);
		composed.removeChild(tileItem);
	};
	composed.addEventListener('click', composedClickHandler)
	
	wordShown.innerHTML = targetSystem === 'FUTHARK' ? wordAlphaHyphenated : wordFutharkInRunicHyphenated;
	wordShown.classList.add(targetSystem === 'FUTHARK' ? 'alpha' : 'runic');
	
	const checkAnswerButton = template.querySelector('[data-spell="verify"]');
	const checkAnswerHandler = function (e) {
		if (composed.children.length === 0) {
			warningEl.hidden = false;
			warningEl.innerText = 'Please add your answer first!';
			warningEl.focus();
			return;
		}
		
		let isCorrect = false;
		const userInputTiles = Array.from(composed.children);
		let userInput = userInputTiles.map(c => c.innerText).join('');
		
		if (targetSystem === 'FUTHARK') {
			isCorrect = userInput.trim() === wordToSpell.runic.trim();
		} else {
			isCorrect = wordToSpell.spellings.includes(userInput.trim().toLowerCase());
		}
		
		userInputTiles.forEach((item, index) => {
			const tile = item.querySelector('[data-spell="opt-button"]');
			tile.style.setProperty('--tile-index', index);
		})
		
		glyphBank.removeEventListener('click', glyphBankClickHandler);
		composed.removeEventListener('click', composedClickHandler);
		
		checkAnswerButton.setAttribute('aria-disabled', 'true');
		checkAnswerButton.removeEventListener('click', checkAnswerHandler);
		
		checkAnswerButton.hidden = true;
		warningEl.hidden = true;
		resultEl.hidden = false;
		
		if (isCorrect) {
			resultEl.classList.add('msg-correct');
			resultEl.innerText = randomItem(correctMessages);
			composed.setAttribute('data-answer', 'correct');
		} else {
			resultEl.classList.add('msg-wrong');
			resultEl.innerText = randomItem(incorrectMessages);
			composed.setAttribute('data-answer', 'wrong');
		}
		
		newExerciseButton.focus();
	}
	checkAnswerButton.addEventListener('click', checkAnswerHandler)
	
	return template;
}

function generateExercise() {
	const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches
	const timing = prefersReducedMotion ? 1 : 200;
	const type = Math.random() < 0.5 ? 'match' : 'spell';
	let height = 'auto';
	
	const setOpacity = async (opacity) => {
		return new Promise(function (resolve, _) {
			exerciseContent
				.animate({ opacity: Math.max(0, Math.min(1, parseFloat(opacity))) }, { duration: timing, iterations: 1, easing: 'ease-out' })
   				.onfinish = (e) => {
					e.target.effect.target.style.opacity = opacity;
					resolve(true);
			   };
		});
	}
	const removeContent = async () => {
		// Remove any existing content
		while (exerciseContent.firstChild) {
			exerciseContent.removeChild(exerciseContent.lastChild);
		}
		return true;
	};
	setOpacity(0)
		.then(async () => { height = window.getComputedStyle(exerciseContent).height; return true; })
		.then(removeContent)
		.then(() => {
			const prevHeight = height;
			const exercise = type === 'spell' ? makeSpellExercise() : makeMatchExercise();
			exerciseContent.append(exercise);
			const newHeight = window.getComputedStyle(exerciseContent).height;
			exerciseContent.style.height = prevHeight;
			height = newHeight;
			return new Promise((resolve, _) => setTimeout(resolve, 0));
		})
		.then(async () => {
			return new Promise(function (resolve, _) {
				exerciseContent
					.animate({ height: height }, { duration: Math.ceil(timing/2), iterations: 1, easing: 'ease-out' })
					.onfinish = (e) => {
						e.target.effect.target.style.height = height;
						resolve(true);
					};
			});
		})
		.then(() => setOpacity(1))
		.then(() => {
			height = 'auto';
			exerciseContent.style.height = 'auto';
			exerciseContent.focus();
		});
}
newExerciseButton.addEventListener('click', generateExercise);

// Prevent form submissions
Array.from(document.querySelectorAll('form')).forEach(function(form) {
	form.addEventListener('submit', function (e) {
		e.preventDefault();
		return false;
	});
});

// Lo-fi tab navigation…
document.addEventListener('click', function(e) {
	const menuLink = e.target.closest('.menu-link');
	if (!menuLink) { return; }
	const targetSection = document.querySelector(menuLink.getAttribute('href'));
	Array.from(document.querySelectorAll('.menu-link')).forEach(m => {
		const linkTarget = document.querySelector(m.getAttribute('href'));
		m.setAttribute('aria-current', 'false');
		linkTarget.inert = true;
		linkTarget.setAttribute('aria-hidden', 'true');
	});
	menuLink.setAttribute('aria-current', 'true');
	targetSection.addEventListener('transitionend', function(e){
		targetSection.focus(); // Focus once transition is over
	}, { once: true });
	targetSection.inert = false;
	targetSection.setAttribute('aria-hidden', 'false');
	
	e.preventDefault();
	return false;
});
              
            
!
999px

Console