/*
Theme Name: Highscore
Theme URI: https://thebighead.ca/free-themes/highscore
Author: The Big Head
Author URI: https://thebighead.ca/
Description: An arcade cabinet's attract mode as a WordPress theme, for streamers, esports teams and gaming blogs. Pixel lettering drawn as inline SVG with no font file, a CRT layer (scanlines, vignette, chroma flicker), a HUD bar fed by real site numbers, a blinking PRESS START hero over a parallax starfield, a LIVE badge with a click-to-load stream player, posts as cartridges with GENRE labels and NEW! tags, scored reviews with pixel hearts and schema.org Review data, a high-score table, a character-select roster with stat bars and a match schedule with a live countdown. Four presets — Cabinet, Handheld, Vapor and Paper — all at 4.5:1 contrast, every effect on its own switch, everything off under reduced motion. No page builder, no jQuery, no external requests.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: highscore
Update URI: false
Tags: blog, entertainment, news, one-column, two-columns, right-sidebar, custom-background, custom-colors, custom-logo, custom-menu, featured-images, footer-widgets, full-width-template, sticky-post, threaded-comments, block-patterns, block-styles, wide-blocks, editor-style, translation-ready

Highscore is free software distributed under the terms of the GNU GPL.
*/

/* ==========================================================================
   Fonts — bundled, SIL OFL 1.1, no request leaves the site.
   Fira Code: labels, HUD, headings.  Manrope: long-form reading.
   ========================================================================== */

@font-face {
	font-family: "Fira Code";
	src: url("/free-themes/preview/highscore/theme/assets/fonts/FiraCode-Variable.woff2") format("woff2");
	font-weight: 300 700;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Manrope";
	src: url("/free-themes/preview/highscore/theme/assets/fonts/Manrope-Variable.woff2") format("woff2");
	font-weight: 200 800;
	font-style: normal;
	font-display: swap;
}

/* ==========================================================================
   Tokens. Every colour and the border thickness below read from these; the
   Customizer rewrites them in one inline block (functions.php).

   c1–c6  raw accents (sprites, borders)      t1–t6  accents as TEXT on the screen
   f1–f6  accents as FILLS under small text   on1–on6  the text colour on those fills
   ========================================================================== */

:root {
	--hs-bg: #0a0a12;
	--hs-bg2: #1a1a22;
	--hs-bg3: #2e2e35;
	--hs-ink: #f4f4f4;
	--hs-muted: #b0b0b4;
	--hs-line2: #4b4b51;
	--hs-shadow: #7e2553;

	--hs-c1: #ff004d; --hs-t1: #ff2e6c; --hs-f1: #ff004d; --hs-on1: #0a0a12;
	--hs-c2: #29adff; --hs-t2: #29adff; --hs-f2: #29adff; --hs-on2: #0a0a12;
	--hs-c3: #00e436; --hs-t3: #00e436; --hs-f3: #00e436; --hs-on3: #0a0a12;
	--hs-c4: #ffec27; --hs-t4: #ffec27; --hs-f4: #ffec27; --hs-on4: #0a0a12;
	--hs-c5: #ffa300; --hs-t5: #ffa300; --hs-f5: #ffa300; --hs-on5: #0a0a12;
	--hs-c6: #7e2553; --hs-t6: #d08aa9; --hs-f6: #7e2553; --hs-on6: #f4f4f4;

	--hs-b: 4px;

	--hs-font-mono: "Fira Code", ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
	--hs-font-body: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

	--hs-wrap: 1200px;
	--hs-narrow: 720px;
	--hs-pad: clamp(16px, 4vw, 40px);

	--hs-accent: var(--hs-f4);
	--hs-on-accent: var(--hs-on4);
	--hs-accent-t: var(--hs-t4);
	--hs-focus: var(--hs-t4);

	/* Pixel glyphs used as masks, so they take any colour. */
	--hs-i-cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 7' shape-rendering='crispEdges'%3E%3Cpath d='M0 0h1v7H0zM1 1h1v5H1zM2 2h1v3H2zM3 3h1v1H3z'/%3E%3C/svg%3E");
	--hs-i-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 7 4' shape-rendering='crispEdges'%3E%3Cpath d='M0 0h7v1H0zM1 1h5v1H1zM2 2h3v1H2zM3 3h1v1H3z'/%3E%3C/svg%3E");
	--hs-i-plus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 5 5' shape-rendering='crispEdges'%3E%3Cpath d='M2 0h1v5H2zM0 2h5v1H0z'/%3E%3C/svg%3E");
	--hs-i-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 5 5' shape-rendering='crispEdges'%3E%3Cpath d='M0 2h5v1H0z'/%3E%3C/svg%3E");
	--hs-i-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 7 6' shape-rendering='crispEdges'%3E%3Cpath d='M6 0h1v2H6zM5 1h1v2H5zM4 2h1v2H4zM3 3h1v2H3zM2 4h1v2H2zM1 3h1v2H1zM0 2h1v2H0z'/%3E%3C/svg%3E");
	--hs-i-cross: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 5 5' shape-rendering='crispEdges'%3E%3Cpath d='M0 0h1v1H0zM4 0h1v1H4zM1 1h1v1H1zM3 1h1v1H3zM2 2h1v1H2zM1 3h1v1H1zM3 3h1v1H3zM0 4h1v1H0zM4 4h1v1H4z'/%3E%3C/svg%3E");
	--hs-i-skull: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 8' shape-rendering='crispEdges'%3E%3Cpath d='M1 0h7v1H1zM0 1h9v1H0zM0 2h2v2H0zM4 2h1v2H4zM7 2h2v2H7zM0 4h9v1H0zM1 5h7v1H1zM1 6h1v1H1zM3 6h1v1H3zM5 6h1v1H5zM7 6h1v1H7zM2 7h5v1H2z'/%3E%3C/svg%3E");
}

/* ==========================================================================
   Foundation
   ========================================================================== */

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

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-padding-top: 24px;
}

body {
	margin: 0;
	background-color: var(--hs-bg);
	color: var(--hs-ink);
	font-family: var(--hs-font-body);
	font-size: 17px;
	font-weight: 450;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-wrap: break-word;
}

img, svg, video, canvas, iframe { max-width: 100%; }
img, video { height: auto; }
img { border-style: none; }

a {
	color: var(--hs-t2);
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}
a:hover { color: var(--hs-t4); }

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 .6em;
	font-family: var(--hs-font-mono);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -.01em;
	text-wrap: balance;
}

p { margin: 0 0 1.4em; }

ul, ol { padding-left: 1.4em; }

:focus { outline: none; }
:focus-visible {
	outline: 4px solid var(--hs-focus);
	outline-offset: 3px;
}

::selection { background: var(--hs-f4); color: var(--hs-on4); }

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
	white-space: nowrap;
}

.skip-link:focus {
	clip: auto;
	clip-path: none;
	height: auto;
	width: auto;
	margin: 0;
	left: 12px;
	top: 12px;
	z-index: 100000;
	padding: 14px 18px;
	background: var(--hs-f4);
	color: var(--hs-on4);
	font: 700 14px/1 var(--hs-font-mono);
	text-transform: uppercase;
	text-decoration: none;
	white-space: normal;
}

.wrap {
	width: 100%;
	max-width: calc(var(--hs-wrap) + var(--hs-pad) * 2);
	margin-inline: auto;
	padding-inline: var(--hs-pad);
}

.site { overflow-x: clip; }

/* ==========================================================================
   Pixel lettering + sprites (inc/pixel-text.php)
   One em is eight pixel units, so keep font-size a multiple of 8px.
   ========================================================================== */

.hs-px {
	display: inline-block;
	line-height: 1;
	vertical-align: top;
	--hs-px-shadow: var(--hs-shadow);
}
.hs-px-words {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: .5em .75em;
	max-width: 100%;
}
.hs-px-w { display: block; flex: none; overflow: visible; }
.hs-px-br { flex-basis: 100%; height: 0; }
.hs-px-s { fill: var(--hs-px-shadow); opacity: 1; }
.hs-px--text {
	font-family: var(--hs-font-mono);
	font-weight: 700;
	font-size: .8em;
	line-height: 1.15;
	text-transform: uppercase;
}
.has-text-align-center .hs-px-words,
.hs-px--center .hs-px-words { justify-content: center; }

/* Arcade bands: each pixel row of the glyphs takes its own colour. */
.hs-px--bands .r0 { fill: var(--hs-ink); }
.hs-px--bands .r1, .hs-px--bands .r2 { fill: var(--hs-t4); }
.hs-px--bands .r3, .hs-px--bands .r4 { fill: var(--hs-t5); }
.hs-px--bands .r5, .hs-px--bands .r6 { fill: var(--hs-t1); }

.hs-sprite { display: inline-block; vertical-align: middle; overflow: visible; }
.hs-s-k { fill: var(--hs-sprite-line, var(--hs-bg)); }
.hs-s-w { fill: var(--hs-ink); }
.hs-s-m { fill: var(--hs-line2); }
.hs-s-r { fill: var(--hs-c1); }
.hs-s-b { fill: var(--hs-c2); }
.hs-s-g { fill: var(--hs-c3); }
.hs-s-y { fill: var(--hs-c4); }
.hs-s-o { fill: var(--hs-c5); }
.hs-s-p { fill: var(--hs-c6); }
.hs-light .hs-sprite { --hs-sprite-line: var(--hs-ink); }
.hs-light .hs-s-w { fill: var(--hs-bg); }

/* The pixel cursor, a mask so it takes the text colour. */
.hs-cur {
	display: inline-block;
	width: .57em;
	height: 1em;
	vertical-align: -.12em;
	background: currentColor;
	-webkit-mask: var(--hs-i-cursor) center / contain no-repeat;
	mask: var(--hs-i-cursor) center / contain no-repeat;
}
.hs-cur--left { transform: scaleX(-1); }

/* ==========================================================================
   Pixel frames — the stepped box-shadow technique. Four offset shadows draw
   the border and leave the corners notched; two more draw a hard drop shadow
   with the same notch. Thickness is --hs-b (Customizer).
   ========================================================================== */

.hs-frame,
.hs-cart,
.widget,
.comment-respond,
.hs-select-panel,
.entry-content blockquote,
.entry-content pre,
.entry-content .wp-block-table,
.is-style-pixel-border,
.wp-block-details,
.hs-post-nav-link {
	--hs-frame: var(--hs-ink);
	position: relative;
	background-color: var(--hs-bg2);
	box-shadow:
		0 calc(var(--hs-b) * -1) 0 0 var(--hs-frame),
		0 var(--hs-b) 0 0 var(--hs-frame),
		calc(var(--hs-b) * -1) 0 0 0 var(--hs-frame),
		var(--hs-b) 0 0 0 var(--hs-frame);
}

.hs-shadows .hs-frame,
.hs-shadows .hs-cart,
.hs-shadows .comment-respond,
.hs-shadows .hs-select-panel,
.hs-shadows .entry-content blockquote,
.hs-shadows .is-style-pixel-border,
.hs-shadows .hs-post-nav-link {
	box-shadow:
		0 calc(var(--hs-b) * -1) 0 0 var(--hs-frame),
		0 var(--hs-b) 0 0 var(--hs-frame),
		calc(var(--hs-b) * -1) 0 0 0 var(--hs-frame),
		var(--hs-b) 0 0 0 var(--hs-frame),
		var(--hs-b) calc(var(--hs-b) * 2) 0 0 var(--hs-shadow),
		calc(var(--hs-b) * 3) calc(var(--hs-b) * 2) 0 0 var(--hs-shadow),
		calc(var(--hs-b) * 2) var(--hs-b) 0 0 var(--hs-shadow),
		calc(var(--hs-b) * 2) calc(var(--hs-b) * 3) 0 0 var(--hs-shadow);
}

/* ==========================================================================
   Buttons
   ========================================================================== */

.hs-btn,
.wp-block-button__link,
.wp-element-button,
button.submit,
input[type="submit"],
.wp-block-search__button,
.wp-block-file__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 44px;
	margin: var(--hs-b);
	padding: 12px 20px;
	border: 0;
	border-radius: 0;
	background: var(--hs-f4);
	color: var(--hs-on4);
	font: 700 14px/1.1 var(--hs-font-mono);
	letter-spacing: .08em;
	text-transform: uppercase;
	text-decoration: none;
	text-align: center;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	box-shadow:
		0 calc(var(--hs-b) * -1) 0 0 var(--hs-ink),
		0 var(--hs-b) 0 0 var(--hs-ink),
		calc(var(--hs-b) * -1) 0 0 0 var(--hs-ink),
		var(--hs-b) 0 0 0 var(--hs-ink),
		inset calc(var(--hs-b) * -1) calc(var(--hs-b) * -1) 0 0 rgba(0, 0, 0, .22),
		inset var(--hs-b) var(--hs-b) 0 0 rgba(255, 255, 255, .4);
}
.hs-shadows .hs-btn,
.hs-shadows .wp-block-button__link,
.hs-shadows .wp-element-button,
.hs-shadows button.submit,
.hs-shadows input[type="submit"] {
	box-shadow:
		0 calc(var(--hs-b) * -1) 0 0 var(--hs-ink),
		0 var(--hs-b) 0 0 var(--hs-ink),
		calc(var(--hs-b) * -1) 0 0 0 var(--hs-ink),
		var(--hs-b) 0 0 0 var(--hs-ink),
		inset calc(var(--hs-b) * -1) calc(var(--hs-b) * -1) 0 0 rgba(0, 0, 0, .22),
		inset var(--hs-b) var(--hs-b) 0 0 rgba(255, 255, 255, .4),
		var(--hs-b) calc(var(--hs-b) * 2) 0 0 var(--hs-shadow),
		calc(var(--hs-b) * 2) var(--hs-b) 0 0 var(--hs-shadow);
}
.hs-btn:hover,
.wp-block-button__link:hover,
.wp-element-button:hover,
button.submit:hover,
input[type="submit"]:hover {
	background: var(--hs-ink);
	color: var(--hs-bg);
}
.hs-btn:active,
.wp-block-button__link:active,
.wp-element-button:active,
button.submit:active,
input[type="submit"]:active {
	transform: translate(var(--hs-b), var(--hs-b));
	box-shadow:
		0 calc(var(--hs-b) * -1) 0 0 var(--hs-ink),
		0 var(--hs-b) 0 0 var(--hs-ink),
		calc(var(--hs-b) * -1) 0 0 0 var(--hs-ink),
		var(--hs-b) 0 0 0 var(--hs-ink);
}

.hs-btn--ghost,
.is-style-outline > .wp-block-button__link {
	background: var(--hs-bg);
	color: var(--hs-ink);
	box-shadow:
		0 calc(var(--hs-b) * -1) 0 0 var(--hs-ink),
		0 var(--hs-b) 0 0 var(--hs-ink),
		calc(var(--hs-b) * -1) 0 0 0 var(--hs-ink),
		var(--hs-b) 0 0 0 var(--hs-ink) !important;
	border: 0 !important;
	padding: 12px 20px !important;
}
.hs-btn--ghost:hover,
.is-style-outline > .wp-block-button__link:hover { background: var(--hs-ink); color: var(--hs-bg); }

.hs-btn--small { min-height: 36px; padding: 8px 12px; font-size: 12px; }

.hs-btn--start,
.is-style-pixel > .wp-block-button__link {
	padding: 16px 28px;
	font-size: 16px;
	background: var(--hs-f1);
	color: var(--hs-on1);
}

/* Small labels */
.hs-kicker {
	margin: 0 0 14px;
	color: var(--hs-t4);
	font: 600 12px/1.4 var(--hs-font-mono);
	letter-spacing: .18em;
	text-transform: uppercase;
}

.hs-chip {
	display: inline-block;
	padding: 3px 7px;
	background: var(--hs-bg3);
	color: var(--hs-ink);
	font: 700 10px/1.3 var(--hs-font-mono);
	letter-spacing: .1em;
	text-transform: uppercase;
}

.hs-empty {
	padding: 20px;
	color: var(--hs-muted);
	font: 500 14px/1.5 var(--hs-font-mono);
}

/* Blink: stepped, never faded. */
@keyframes hs-blink {
	0%   { visibility: visible; }
	62%  { visibility: hidden; }
	100% { visibility: hidden; }
}
@keyframes hs-blink-soft {
	0%   { opacity: 1; }
	62%  { opacity: .25; }
	100% { opacity: .25; }
}
.hs-blink .hs-blinker { animation: hs-blink 1.15s steps(1, end) infinite; }
.hs-blink a:hover .hs-blinker,
.hs-blink a:focus-visible .hs-blinker { animation: none; }

/* ==========================================================================
   The CRT layer. One fixed overlay on large screens; on phones the scanlines
   live on the hero and on screens (images) instead, so there is no
   full-viewport fixed layer under a mobile browser's translucent toolbars.
   ========================================================================== */

.hs-crt { display: none; }

@media (min-width: 769px) {
	.hs-scanlines .hs-crt,
	.hs-vignette .hs-crt {
		display: block;
		position: fixed;
		inset: 0;
		z-index: 9990;
		pointer-events: none;
	}
	.hs-scanlines .hs-crt::before {
		content: "";
		position: absolute;
		inset: 0;
		background: repeating-linear-gradient(to bottom, rgba(0, 0, 0, 0) 0 2px, rgba(0, 0, 0, .2) 2px 4px);
	}
	.hs-scanlines.hs-light .hs-crt::before {
		background: repeating-linear-gradient(to bottom, rgba(0, 0, 0, 0) 0 2px, rgba(0, 0, 0, .05) 2px 4px);
	}
	.hs-vignette .hs-crt::after {
		content: "";
		position: absolute;
		inset: 0;
		background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0) 58%, rgba(0, 0, 0, .5) 100%);
	}
	.hs-vignette.hs-light .hs-crt::after {
		background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0) 62%, rgba(40, 30, 0, .16) 100%);
	}
}

/* Screens: anything that shows a picture gets its own scanlines. */
.hs-scanlines .hs-cart-art::after,
.hs-scanlines .entry-screen::after,
.hs-scanlines .hs-tv-screen::after,
.hs-scanlines .is-style-crt::after,
.hs-scanlines .hs-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;
	background: repeating-linear-gradient(to bottom, rgba(0, 0, 0, 0) 0 2px, rgba(0, 0, 0, .24) 2px 4px);
}
@media (min-width: 769px) {
	/* The page overlay already covers the hero. */
	.hs-scanlines .hs-hero::after { content: none; }
}
.hs-scanlines.hs-light .hs-hero::after { opacity: .25; }

/* ==========================================================================
   HUD strip
   ========================================================================== */

.hs-hud {
	background: color-mix(in srgb, var(--hs-bg) 55%, #000);
	border-bottom: var(--hs-b) solid var(--hs-line2);
	font-size: 16px;
}
.hs-light .hs-hud { background: var(--hs-ink); --hs-ink-on: var(--hs-bg); }
.hs-hud-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px 24px;
	padding-block: 10px;
}
.hs-hud-slot {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	margin: 0;
}
.hs-hud-slot--2 { align-items: center; }
.hs-hud-slot--3 { align-items: flex-end; }
.hs-hud-label { color: var(--hs-t1); }
.hs-hud-slot--2 .hs-hud-label { color: var(--hs-t2); }
.hs-hud-slot--3 .hs-hud-label { color: var(--hs-t4); }
.hs-hud-value { color: var(--hs-ink); }
.hs-light .hs-hud-label,
.hs-light .hs-hud-slot--2 .hs-hud-label,
.hs-light .hs-hud-slot--3 .hs-hud-label { color: var(--hs-c4); }
.hs-light .hs-hud-value { color: var(--hs-bg); }
.hs-hud .hs-px { display: block; }

@media (min-width: 700px) {
	.hs-hud-slot { flex-direction: row; align-items: center; gap: 14px; }
}

/* LIVE badge */
.hs-live {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 28px;
	padding: 5px 10px;
	background: var(--hs-f1);
	color: var(--hs-on1);
	font: 700 12px/1 var(--hs-font-mono);
	letter-spacing: .12em;
	text-transform: uppercase;
	text-decoration: none;
	flex: none;
}
.hs-live[hidden] { display: none; }
a.hs-live:hover { background: var(--hs-ink); color: var(--hs-bg); }
.hs-live-dot {
	width: 8px;
	height: 8px;
	background: currentColor;
}
@keyframes hs-pulse {
	0%   { transform: scale(1); opacity: 1; }
	50%  { transform: scale(1.5); opacity: 1; }
	100% { transform: scale(1); opacity: .4; }
}
.hs-blink .hs-live-dot { animation: hs-pulse 1.2s steps(3, end) infinite; }
p.hs-live { margin: 0 0 18px; }

/* ==========================================================================
   Header + the game menu
   ========================================================================== */

.site-header {
	position: relative;
	z-index: 50;
	border-bottom: var(--hs-b) solid var(--hs-ink);
	background: var(--hs-bg);
}
.site-header-inner {
	display: flex;
	align-items: center;
	gap: 16px 28px;
	min-height: 76px;
	padding-block: 14px;
}
.site-branding { margin-right: auto; min-width: 0; }
.site-title { margin: 0; font-size: 24px; line-height: 1; }
.site-title a { display: inline-block; color: var(--hs-ink); text-decoration: none; }
.site-title a:hover { color: var(--hs-t4); }
.site-title .hs-px { --hs-px-shadow: var(--hs-c1); }
.site-description {
	margin: 8px 0 0;
	color: var(--hs-muted);
	font: 500 11px/1.3 var(--hs-font-mono);
	letter-spacing: .12em;
	text-transform: uppercase;
}
.custom-logo-link { display: inline-block; line-height: 0; }
.custom-logo { max-height: 56px; width: auto; }

.main-navigation ul { list-style: none; margin: 0; padding: 0; }
.main-navigation a {
	position: relative;
	display: block;
	padding: 12px 10px 12px 24px;
	color: var(--hs-ink);
	font: 600 13px/1.2 var(--hs-font-mono);
	letter-spacing: .1em;
	text-transform: uppercase;
	text-decoration: none;
}
/* The ▶ cursor: parked beside every item, lit on hover, focus and "you are here". */
.main-navigation a::before {
	content: "";
	position: absolute;
	left: 8px;
	top: 50%;
	width: 8px;
	height: 14px;
	margin-top: -7px;
	background: var(--hs-t4);
	-webkit-mask: var(--hs-i-cursor) center / contain no-repeat;
	mask: var(--hs-i-cursor) center / contain no-repeat;
	visibility: hidden;
}
.main-navigation a:hover,
.main-navigation a:focus-visible { color: var(--hs-t4); }
.main-navigation a:hover::before,
.main-navigation a:focus-visible::before { visibility: visible; }
.hs-blink .main-navigation a:hover::before,
.hs-blink .main-navigation a:focus-visible::before { animation: hs-blink .7s steps(1, end) infinite; }
.main-navigation .current-menu-item > a,
.main-navigation .current_page_item > a,
.main-navigation .current-menu-ancestor > a { color: var(--hs-t1); }
.main-navigation .current-menu-item > a::before,
.main-navigation .current_page_item > a::before,
.main-navigation .current-menu-ancestor > a::before { visibility: visible; background: var(--hs-t1); animation: none; }

.hs-pause-title,
.hs-pause-extras,
.submenu-toggle { display: none; }

.menu-toggle {
	display: none;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	margin: var(--hs-b);
	padding: 10px 14px;
	border: 0;
	background: var(--hs-bg);
	color: var(--hs-ink);
	font: 700 13px/1 var(--hs-font-mono);
	letter-spacing: .12em;
	text-transform: uppercase;
	cursor: pointer;
	box-shadow:
		0 calc(var(--hs-b) * -1) 0 0 var(--hs-ink),
		0 var(--hs-b) 0 0 var(--hs-ink),
		calc(var(--hs-b) * -1) 0 0 0 var(--hs-ink),
		var(--hs-b) 0 0 0 var(--hs-ink);
}
.menu-toggle-icon { display: grid; gap: 3px; width: 16px; }
.menu-toggle-icon span { display: block; height: 3px; background: currentColor; }

/* Desktop */
@media (min-width: 900px) {
	.main-navigation > ul { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0 6px; }
	.main-navigation li { position: relative; }
	.main-navigation ul ul {
		position: absolute;
		top: 100%;
		left: 0;
		z-index: 60;
		min-width: 230px;
		padding: 8px;
		background: var(--hs-bg2);
		box-shadow:
			0 calc(var(--hs-b) * -1) 0 0 var(--hs-ink),
			0 var(--hs-b) 0 0 var(--hs-ink),
			calc(var(--hs-b) * -1) 0 0 0 var(--hs-ink),
			var(--hs-b) 0 0 0 var(--hs-ink),
			calc(var(--hs-b) * 2) calc(var(--hs-b) * 3) 0 0 var(--hs-shadow),
			calc(var(--hs-b) * 3) calc(var(--hs-b) * 2) 0 0 var(--hs-shadow);
		visibility: hidden;
	}
	.main-navigation li:hover > ul,
	.main-navigation li:focus-within > ul,
	.main-navigation li.is-open > ul { visibility: visible; }
	.main-navigation li:last-child > ul,
	.main-navigation li:nth-last-child(2) > ul { left: auto; right: 0; }
	.main-navigation .menu-item-has-children > a,
	.main-navigation .page_item_has_children > a { padding-right: 26px; }
	.main-navigation .menu-item-has-children > a::after,
	.main-navigation .page_item_has_children > a::after {
		content: "";
		position: absolute;
		right: 8px;
		top: 50%;
		width: 10px;
		height: 6px;
		margin-top: -3px;
		background: currentColor;
		-webkit-mask: var(--hs-i-down) center / contain no-repeat;
		mask: var(--hs-i-down) center / contain no-repeat;
	}
}

/* Phone: the menu is a PAUSE screen. */
@media (max-width: 899px) {
	.menu-toggle { display: inline-flex; }
	.site-header-inner { min-height: 68px; }

	.main-navigation {
		position: fixed;
		inset: 0;
		z-index: 9995;
		display: none;
		flex-direction: column;
		gap: 20px;
		padding: 28px var(--hs-pad) 40px;
		overflow-y: auto;
		overscroll-behavior: contain;
		background: var(--hs-bg);
		background-image:
			linear-gradient(color-mix(in srgb, var(--hs-ink) 7%, transparent) 2px, transparent 2px);
		background-size: 100% 4px;
	}
	.main-navigation.is-open { display: flex; }
	html.hs-menu-open { overflow: hidden; }

	.hs-pause-title {
		display: block;
		margin: 8px 0 8px;
		font-size: 40px;
		text-align: center;
		color: var(--hs-t4);
	}
	.hs-pause-title .hs-px { --hs-px-shadow: var(--hs-c1); }
	.hs-blink .hs-pause-title { animation: hs-blink-soft 1.4s steps(1, end) infinite; }

	.main-navigation > ul { display: block; width: 100%; max-width: 420px; margin-inline: auto; }
	.main-navigation li { position: relative; border-bottom: 2px dotted var(--hs-line2); }
	.main-navigation a { padding: 16px 52px 16px 34px; font-size: 17px; }
	.main-navigation a::before { left: 10px; width: 10px; height: 18px; margin-top: -9px; }
	.main-navigation ul ul { display: none; padding: 0 0 8px 20px; }
	.main-navigation ul ul li { border-bottom: 0; }
	.main-navigation ul ul a { padding-block: 12px; font-size: 14px; color: var(--hs-muted); }
	.main-navigation li.is-open > ul { display: block; }

	.submenu-toggle {
		position: absolute;
		right: 0;
		top: 5px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		border: 0;
		background: var(--hs-bg3);
		color: var(--hs-ink);
		cursor: pointer;
	}
	.submenu-toggle::before {
		content: "";
		width: 14px;
		height: 14px;
		background: currentColor;
		-webkit-mask: var(--hs-i-plus) center / contain no-repeat;
		mask: var(--hs-i-plus) center / contain no-repeat;
	}
	.submenu-toggle[aria-expanded="true"]::before {
		-webkit-mask-image: var(--hs-i-minus);
		mask-image: var(--hs-i-minus);
	}

	.hs-pause-extras {
		display: grid;
		gap: 22px;
		justify-items: center;
		width: 100%;
		max-width: 420px;
		margin: 8px auto 0;
	}
	.hs-pause-extras .search-form { width: 100%; }
}

/* ==========================================================================
   Attract-mode hero
   ========================================================================== */

.hs-hero {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: min(760px, calc(100svh - 120px));
	padding: 72px 0 0;
	overflow: hidden;
	text-align: center;
	background:
		radial-gradient(ellipse 80% 60% at 50% 38%, color-mix(in srgb, var(--hs-c6) 38%, transparent), transparent 70%),
		var(--hs-bg);
	border-bottom: var(--hs-b) solid var(--hs-ink);
}
.hs-vignette .hs-hero { box-shadow: inset 0 0 140px 20px rgba(0, 0, 0, .6); }
.hs-vignette.hs-light .hs-hero { box-shadow: inset 0 0 120px 0 rgba(60, 40, 0, .14); }

.hs-hero-sky {
	position: absolute;
	inset: 0;
	z-index: -2;
	/* A still starfield for no-JS and reduced motion; the canvas paints over it. */
	background-image:
		radial-gradient(circle, var(--hs-ink) 1px, transparent 1.5px),
		radial-gradient(circle, var(--hs-c2) 1px, transparent 1.5px),
		radial-gradient(circle, var(--hs-c4) 1.5px, transparent 2px);
	background-size: 190px 170px, 270px 230px, 410px 370px;
	background-position: 20px 30px, 110px 140px, 60px 200px;
	opacity: .55;
}
.hs-hero-canvas {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	display: block;
	image-rendering: pixelated;
}
.js .hs-hero-sky:has(canvas.is-running) { background-image: none; opacity: 1; }

.hs-hero-sprites { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.hs-float { position: absolute; width: 48px; height: auto; opacity: .95; }
.hs-float--1 { left: 7%; top: 20%; width: 48px; }
.hs-float--2 { right: 9%; top: 16%; width: 54px; }
.hs-float--3 { left: 14%; bottom: 26%; width: 54px; }
.hs-float--4 { right: 13%; bottom: 24%; width: 66px; }
.hs-float--5 { left: 27%; top: 9%; width: 28px; }
.hs-float--6 { right: 28%; top: 8%; width: 60px; opacity: .8; }
@keyframes hs-bob {
	0%   { transform: translateY(0); }
	50%  { transform: translateY(-12px); }
	100% { transform: translateY(0); }
}
.hs-blink .hs-float { animation: hs-bob 2.4s steps(4, end) infinite; }
.hs-blink .hs-float--2 { animation-delay: -.6s; }
.hs-blink .hs-float--3 { animation-delay: -1.2s; }
.hs-blink .hs-float--4 { animation-delay: -1.8s; }
.hs-blink .hs-float--5 { animation-delay: -.9s; }
.hs-blink .hs-float--6 { animation-delay: -1.5s; }

.hs-hero-inner { position: relative; padding-bottom: 72px; }

.hs-hero-kicker {
	margin: 0 0 28px;
	color: var(--hs-t4);
	font: 600 13px/1.4 var(--hs-font-mono);
	letter-spacing: .24em;
	text-transform: uppercase;
}
.hs-hero-kicker span { display: inline-block; padding: 0 1.2em; position: relative; }
.hs-hero-kicker span::before,
.hs-hero-kicker span::after {
	content: "";
	position: absolute;
	top: 50%;
	width: 28px;
	height: 4px;
	margin-top: -2px;
	background: repeating-linear-gradient(90deg, currentColor 0 4px, transparent 4px 8px);
}
.hs-hero-kicker span::before { right: 100%; }
.hs-hero-kicker span::after { left: 100%; }

.hs-hero-title {
	margin: 0 0 30px;
	font-size: 48px;
	line-height: 1;
}
.hs-hero-title .hs-px { --hs-px-shadow: var(--hs-c2); color: var(--hs-ink); }
.hs-hero-title .hs-px-words { justify-content: center; gap: .45em .7em; }
.hs-light .hs-hero-title .hs-px { --hs-px-shadow: var(--hs-ink); }
@media (min-width: 560px)  { .hs-hero-title { font-size: 64px; } }
@media (min-width: 800px)  { .hs-hero-title { font-size: 80px; } }
@media (min-width: 1100px) { .hs-hero-title { font-size: 96px; } }

@keyframes hs-chroma {
	0%, 100% { filter: none; transform: none; }
	91% { filter: none; transform: none; }
	92% { filter: drop-shadow(4px 0 0 var(--hs-c1)) drop-shadow(-4px 0 0 var(--hs-c2)); transform: translateX(-3px); }
	94% { filter: drop-shadow(-3px 0 0 var(--hs-c1)) drop-shadow(3px 0 0 var(--hs-c3)); transform: translateX(3px); }
	96% { filter: none; transform: none; }
}
.hs-flicker .hs-hero-title .hs-px-words,
.hs-flicker .hs-gameover-title .hs-px-words { animation: hs-chroma 7s steps(1, end) infinite; }

.hs-hero-tagline {
	max-width: 34em;
	margin: 0 auto 36px;
	color: var(--hs-ink);
	font-size: clamp(16px, 1.6vw, 19px);
	line-height: 1.6;
	text-wrap: balance;
}
.hs-hero-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 20px 28px;
	margin-bottom: 40px;
}
.hs-hero-foot {
	margin: 0;
	color: var(--hs-muted);
	font: 500 11px/1.4 var(--hs-font-mono);
	letter-spacing: .2em;
	text-transform: uppercase;
}

/* The ground: a strip of tiles along the bottom of the screen. */
.hs-hero-ground {
	height: 32px;
	margin-top: auto;
	background:
		linear-gradient(var(--hs-c3), var(--hs-c3)) top / 100% 8px no-repeat,
		repeating-linear-gradient(90deg, rgba(0, 0, 0, .28) 0 4px, transparent 4px 32px) 0 8px / 32px 12px repeat-x,
		repeating-linear-gradient(90deg, rgba(0, 0, 0, .28) 0 4px, transparent 4px 32px) 16px 20px / 32px 12px repeat-x,
		linear-gradient(rgba(0, 0, 0, .28), rgba(0, 0, 0, .28)) 0 18px / 100% 4px no-repeat,
		var(--hs-c5);
}

@media (max-width: 899px) {
	.hs-hero { padding-top: 56px; min-height: 560px; }
	.hs-hero-inner { padding-bottom: 56px; }
	.hs-float { width: 32px; }
	.hs-float--1 { left: 5%; top: 5%; }
	.hs-float--2 { right: 6%; top: 6%; width: 36px; }
	.hs-float--3 { left: 6%; bottom: 3%; width: 34px; }
	.hs-float--4 { right: 6%; bottom: 2%; width: 40px; }
	.hs-float--5, .hs-float--6 { display: none; }
}

/* ==========================================================================
   Sections
   ========================================================================== */

.hs-section { padding-block: clamp(56px, 8vw, 104px); }
.hs-section + .hs-section { border-top: var(--hs-b) dotted var(--hs-line2); }
.hs-section--flush { padding-bottom: 0; border-top: 0 !important; }

.hs-section-head { margin-bottom: clamp(28px, 4vw, 44px); }
.hs-section-title { margin: 0; font-size: 24px; line-height: 1; color: var(--hs-ink); }
@media (min-width: 700px) { .hs-section-title { font-size: 32px; } }
@media (min-width: 1100px) { .hs-section-title { font-size: 40px; } }

.hs-more { margin: 44px 0 0; text-align: center; }

/* ---------- Live band ---------- */
.hs-liveband { padding-block: clamp(40px, 5vw, 64px); background: var(--hs-bg2); border-bottom: var(--hs-b) solid var(--hs-ink); }
.hs-liveband[hidden] { display: none; }
.hs-tv {
	display: grid;
	gap: 0;
	background: var(--hs-bg);
	--hs-frame: var(--hs-c1);
}
.hs-tv-screen {
	position: relative;
	aspect-ratio: 16 / 9;
	display: grid;
	place-content: center;
	justify-items: center;
	gap: 16px;
	padding: 20px;
	overflow: hidden;
	background: #050508;
	color: #f4f4f4;
	text-align: center;
}
.hs-tv-static {
	position: absolute;
	inset: -20px;
	background:
		repeating-linear-gradient(0deg, rgba(255, 255, 255, .09) 0 2px, transparent 2px 5px),
		repeating-linear-gradient(90deg, rgba(255, 255, 255, .06) 0 3px, transparent 3px 7px),
		repeating-linear-gradient(37deg, rgba(255, 255, 255, .05) 0 2px, transparent 2px 11px);
}
@keyframes hs-static {
	0%   { transform: translate(0, 0); }
	25%  { transform: translate(-7px, 5px); }
	50%  { transform: translate(6px, -9px); }
	75%  { transform: translate(-4px, -3px); }
	100% { transform: translate(0, 0); }
}
.hs-flicker .hs-tv-static { animation: hs-static .5s steps(4, end) infinite; }
.hs-tv-play {
	position: relative;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	gap: 14px;
	min-height: 56px;
	padding: 14px 24px;
	border: 0;
	background: var(--hs-f1);
	color: var(--hs-on1);
	font: 700 15px/1 var(--hs-font-mono);
	letter-spacing: .1em;
	text-transform: uppercase;
	cursor: pointer;
	box-shadow: 0 -4px 0 0 #f4f4f4, 0 4px 0 0 #f4f4f4, -4px 0 0 0 #f4f4f4, 4px 0 0 0 #f4f4f4;
}
.hs-tv-play:hover { background: #f4f4f4; color: #0a0a12; }
.hs-tv-play-icon { width: 12px; height: 21px; background: currentColor; -webkit-mask: var(--hs-i-cursor) center / contain no-repeat; mask: var(--hs-i-cursor) center / contain no-repeat; font-size: 0; }
.hs-tv-note {
	position: relative;
	z-index: 3;
	max-width: 36em;
	margin: 0;
	color: #c9c9cf;
	font: 500 12px/1.5 var(--hs-font-mono);
}
.hs-tv-screen iframe { position: absolute; inset: 0; z-index: 4; width: 100%; height: 100%; border: 0; }
.hs-tv-side { padding: clamp(22px, 3vw, 36px); align-self: center; }
.hs-tv-title { margin: 0 0 14px; font-size: 24px; }
.hs-tv-where { margin: 0 0 22px; color: var(--hs-muted); font: 500 14px/1.5 var(--hs-font-mono); }
@media (min-width: 860px) {
	.hs-tv { grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); }
	.hs-tv--link { grid-template-columns: 1fr; }
	.hs-tv-title { font-size: 32px; }
}

/* ---------- Cartridges ---------- */
.hs-carts {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
	gap: 40px 36px;
	padding: var(--hs-b) calc(var(--hs-b) * 3) calc(var(--hs-b) * 3) var(--hs-b);
}
.hs-cart {
	display: flex;
	flex-direction: column;
	min-width: 0;
	color: var(--hs-ink);
}
.hs-cart-top {
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 38px;
	padding: 7px 10px;
	background: var(--hs-accent);
	color: var(--hs-on-accent);
}
.hs-cart-grip {
	order: 2;
	flex: 1;
	min-width: 12px;
	height: 14px;
	background: repeating-linear-gradient(90deg, currentColor 0 4px, transparent 4px 8px);
	opacity: .3;
}
.hs-genre {
	position: relative;
	z-index: 3;
	order: 1;
	color: inherit;
	font: 700 11px/1.3 var(--hs-font-mono);
	letter-spacing: .1em;
	text-transform: uppercase;
	text-decoration: none;
}
.hs-genre:hover { color: inherit; text-decoration: underline; }
.hs-genre-key { opacity: .7; font-weight: 500; }
.hs-genre-key::after { content: ":"; }
.hs-pinned, .hs-new {
	order: 3;
	flex: none;
	padding: 4px 7px;
	font: 700 11px/1.2 var(--hs-font-mono);
	letter-spacing: .08em;
	text-transform: uppercase;
	white-space: nowrap;
}
.hs-pinned { background: var(--hs-on-accent); color: var(--hs-accent); }
.hs-new { background: var(--hs-f1); color: var(--hs-on1); box-shadow: 0 0 0 2px var(--hs-on1); }
.hs-blink .hs-new { animation: hs-blink-soft 1s steps(1, end) infinite; }

.hs-cart-art {
	position: relative;
	display: block;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--hs-bg3);
	border-block: var(--hs-b) solid var(--hs-ink);
}
.hs-cart-art img { display: block; width: 100%; height: 100%; object-fit: cover; }
.hs-cart-noart {
	display: grid;
	place-content: center;
	justify-items: center;
	gap: 10px;
	height: 100%;
	background:
		repeating-linear-gradient(0deg, color-mix(in srgb, var(--hs-ink) 6%, transparent) 0 4px, transparent 4px 8px),
		var(--hs-bg3);
}
.hs-cart-noart .hs-sprite { width: 80px; height: 80px; }
.hs-cart-noart-text { color: var(--hs-muted); font: 700 11px/1 var(--hs-font-mono); letter-spacing: .2em; text-transform: uppercase; }

.hs-score-badge {
	position: absolute;
	right: 0;
	bottom: 0;
	z-index: 3;
	padding: 7px 9px 6px;
	background: var(--hs-f4);
	color: var(--hs-on4);
	font: 700 17px/1 var(--hs-font-mono);
	box-shadow: calc(var(--hs-b) * -1) 0 0 0 var(--hs-ink), 0 calc(var(--hs-b) * -1) 0 0 var(--hs-ink);
}
.hs-score-badge-of { font-size: 11px; font-weight: 600; opacity: .75; }

.hs-cart-body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 10px;
	padding: 18px 18px 18px;
}
.hs-cart-title { margin: 0; font-size: 19px; line-height: 1.28; letter-spacing: -.015em; text-wrap: pretty; }
.hs-cart-title a { color: var(--hs-ink); text-decoration: none; }
.hs-cart-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.hs-cart:hover .hs-cart-title a,
.hs-cart-title a:focus-visible { color: var(--hs-accent-t); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.hs-cart:focus-within { outline: 4px solid var(--hs-focus); outline-offset: calc(var(--hs-b) + 3px); }
.hs-cart-title a:focus-visible { outline: none; }
.hs-cart-excerpt { margin: 0; color: var(--hs-muted); font-size: 15px; line-height: 1.55; }
.hs-cart:hover { transform: translate(-2px, -2px); }

.entry-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 0;
	margin-top: auto;
	padding-top: 6px;
	color: var(--hs-muted);
	font: 500 12px/1.5 var(--hs-font-mono);
	letter-spacing: .06em;
	text-transform: uppercase;
}
.entry-meta > * + *::before { content: "/"; margin: 0 .7em; opacity: .5; }
.entry-meta a { color: inherit; position: relative; z-index: 3; }
.entry-meta a:hover { color: var(--hs-t4); }

/* The pinned post leads the front page as a wide cartridge. */
@media (min-width: 900px) {
	.hs-carts--front .hs-cart.sticky:first-child {
		grid-column: 1 / -1;
		display: grid;
		grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
		grid-template-rows: auto 1fr;
	}
	.hs-carts--front .hs-cart.sticky:first-child .hs-cart-top { grid-column: 1 / -1; }
	.hs-carts--front .hs-cart.sticky:first-child .hs-cart-art { aspect-ratio: auto; min-height: 340px; border-block: 0; border-top: var(--hs-b) solid var(--hs-ink); border-right: var(--hs-b) solid var(--hs-ink); }
	.hs-carts--front .hs-cart.sticky:first-child .hs-cart-body { justify-content: center; gap: 16px; padding: 36px; border-top: var(--hs-b) solid var(--hs-ink); }
	.hs-carts--front .hs-cart.sticky:first-child .hs-cart-title { font-size: clamp(24px, 2.4vw, 32px); line-height: 1.18; }
	.hs-carts--front .hs-cart.sticky:first-child .hs-cart-excerpt { font-size: 17px; }
	.hs-carts--front .hs-cart.sticky:first-child .entry-meta { margin-top: 0; }
}

/* ---------- Roster: SELECT YOUR PLAYER ---------- */
.hs-select { display: grid; gap: 40px; }
.hs-select-grid {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px 24px;
	margin: 0;
	padding: 12px;
}
.hs-player { min-width: 0; }
.hs-player-tile {
	position: relative;
	display: block;
	width: 100%;
	padding: 0;
	border: 0;
	background: var(--hs-bg2);
	color: var(--hs-ink);
	font: inherit;
	text-align: center;
	cursor: pointer;
	box-shadow:
		0 calc(var(--hs-b) * -1) 0 0 var(--hs-line2),
		0 var(--hs-b) 0 0 var(--hs-line2),
		calc(var(--hs-b) * -1) 0 0 0 var(--hs-line2),
		var(--hs-b) 0 0 0 var(--hs-line2);
}
.hs-player-art {
	display: block;
	aspect-ratio: 1;
	overflow: hidden;
	background:
		repeating-linear-gradient(0deg, color-mix(in srgb, var(--hs-ink) 5%, transparent) 0 4px, transparent 4px 8px),
		color-mix(in srgb, var(--hs-accent) 16%, var(--hs-bg2));
}
.hs-player-art img,
.hs-player-art svg,
.hs-player-portrait img,
.hs-player-portrait svg { display: block; width: 100%; height: 100%; object-fit: cover; }
.hs-player-art svg, .hs-player-portrait svg { padding: 8%; }
.hs-player-tag {
	display: block;
	padding: 8px 4px;
	background: var(--hs-bg3);
	font: 700 12px/1.2 var(--hs-font-mono);
	letter-spacing: .1em;
	text-transform: uppercase;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.hs-player-pick {
	position: absolute;
	left: -6px;
	top: -14px;
	z-index: 2;
	padding: 4px 6px;
	background: var(--hs-accent);
	color: var(--hs-bg);
	font: 700 11px/1 var(--hs-font-mono);
	visibility: hidden;
}
.hs-light .hs-player-pick { color: var(--hs-ink); }

/* The selection box: four blinking corner brackets. */
.hs-player-tile::after {
	content: "";
	position: absolute;
	inset: -12px;
	z-index: 1;
	pointer-events: none;
	--c: var(--hs-accent);
	background:
		linear-gradient(var(--c), var(--c)) left top / 18px 4px,
		linear-gradient(var(--c), var(--c)) left top / 4px 18px,
		linear-gradient(var(--c), var(--c)) right top / 18px 4px,
		linear-gradient(var(--c), var(--c)) right top / 4px 18px,
		linear-gradient(var(--c), var(--c)) left bottom / 18px 4px,
		linear-gradient(var(--c), var(--c)) left bottom / 4px 18px,
		linear-gradient(var(--c), var(--c)) right bottom / 18px 4px,
		linear-gradient(var(--c), var(--c)) right bottom / 4px 18px;
	background-repeat: no-repeat;
	visibility: hidden;
}
.hs-light .hs-player-tile::after { --c: var(--hs-ink); }
.js .hs-player-tile[aria-pressed="true"]::after,
.js .hs-player-tile[aria-pressed="true"] .hs-player-pick,
.hs-player-tile:focus-visible::after { visibility: visible; }
.hs-blink.js .hs-player-tile[aria-pressed="true"]::after { animation: hs-blink-soft .9s steps(1, end) infinite; }
.js .hs-player-tile[aria-pressed="true"] .hs-player-tag { background: var(--hs-accent); color: var(--hs-bg); }
.hs-light.js .hs-player-tile[aria-pressed="true"] .hs-player-tag { color: var(--hs-ink); }
.hs-player-tile:focus-visible { outline: none; }

.hs-player-card { margin-top: 16px; }
.js .hs-player .hs-player-card { display: none; }
.no-js .hs-select-panel, .hs-select-panel:empty { display: none; }
.no-js .hs-player-portrait { display: none; }

.hs-select-panel { padding: clamp(20px, 3vw, 32px); }
.hs-select-panel .hs-player-card { display: grid; gap: 24px; margin: 0; }
.hs-player-portrait {
	width: 100%;
	max-width: 200px;
	aspect-ratio: 1;
	overflow: hidden;
	background: color-mix(in srgb, var(--hs-accent) 18%, var(--hs-bg));
	border: var(--hs-b) solid var(--hs-accent);
}
.hs-light .hs-player-portrait { border-color: var(--hs-ink); }
.hs-player-slot { margin: 0 0 12px; color: var(--hs-accent-t); font: 700 12px/1 var(--hs-font-mono); letter-spacing: .18em; text-transform: uppercase; }
.hs-player-name { margin: 0 0 20px; font-size: 32px; line-height: 1; }
.hs-player-facts { display: grid; gap: 10px; margin: 0 0 22px; }
.hs-player-facts div { display: grid; grid-template-columns: 96px 1fr; gap: 12px; align-items: baseline; }
.hs-player-facts dt { color: var(--hs-muted); font: 600 11px/1.4 var(--hs-font-mono); letter-spacing: .12em; text-transform: uppercase; }
.hs-player-facts dd { margin: 0; font: 600 15px/1.4 var(--hs-font-mono); }

.hs-stats { list-style: none; display: grid; gap: 10px; margin: 0; padding: 0; }
.hs-stat { display: grid; grid-template-columns: 96px 1fr 26px; gap: 12px; align-items: center; }
.hs-stat-label { color: var(--hs-muted); font: 600 11px/1.2 var(--hs-font-mono); letter-spacing: .12em; text-transform: uppercase; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hs-stat-num { font: 700 12px/1 var(--hs-font-mono); text-align: right; }
.hs-stat-bar, .hs-meter--bar {
	display: block;
	height: 16px;
	background: var(--hs-bg3);
	box-shadow: 0 0 0 2px var(--hs-line2);
}
.hs-stat-fill, .hs-meter-fill {
	display: block;
	height: 100%;
	width: calc(var(--hs-v) * 1%);
	background: var(--hs-accent, var(--hs-c3));
	-webkit-mask: repeating-linear-gradient(90deg, #000 0 8px, transparent 8px 10px);
	mask: repeating-linear-gradient(90deg, #000 0 8px, transparent 8px 10px);
}
.hs-light .hs-stat-fill { background: var(--hs-ink); }
@keyframes hs-fill { from { width: 0; } }
.hs-blink .hs-select-panel .hs-stat-fill { animation: hs-fill .7s steps(10, end) both; }

@media (min-width: 560px) {
	.hs-select-panel .hs-player-card { grid-template-columns: 160px minmax(0, 1fr); align-items: start; }
}
@media (min-width: 960px) {
	.js .hs-select { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); align-items: center; gap: 56px; }
	.hs-select-panel .hs-player-card { grid-template-columns: 200px minmax(0, 1fr); }
	.hs-player-name { font-size: 40px; }
}
.no-js .hs-select-grid { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }

/* ---------- Schedule + leaderboard, side by side when both are on ---------- */
.hs-duo-inner { display: grid; gap: 72px; }
@media (min-width: 1000px) {
	.hs-duo--two .hs-duo-inner { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 64px; align-items: start; }
}

.hs-next {
	display: grid;
	gap: 14px;
	margin: var(--hs-b) calc(var(--hs-b) * 3) 36px var(--hs-b);
	padding: clamp(20px, 3vw, 30px);
	--hs-frame: var(--hs-c4);
}
.hs-light .hs-next { --hs-frame: var(--hs-ink); }
.hs-next-label { margin: 0; color: var(--hs-t4); font: 700 12px/1 var(--hs-font-mono); letter-spacing: .2em; text-transform: uppercase; }
.hs-next-live { display: none; color: var(--hs-t1); }
.hs-next.is-live .hs-next-up { display: none; }
.hs-next.is-live .hs-next-live { display: inline; }
.hs-next.is-live .hs-count { display: none; }
.hs-next-event { margin: 0; font: 700 clamp(19px, 2.2vw, 24px)/1.25 var(--hs-font-mono); letter-spacing: -.01em; }
.hs-next-when { margin: 0; color: var(--hs-muted); font: 500 13px/1.4 var(--hs-font-mono); }
.hs-count { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; max-width: 460px; }
.hs-count-cell { display: grid; justify-items: center; gap: 10px; padding: 14px 4px 10px; background: var(--hs-bg); box-shadow: 0 0 0 2px var(--hs-line2); }
.hs-count-num { font-size: 32px; line-height: 1; color: var(--hs-ink); }
.hs-count-cell--s .hs-count-num { color: var(--hs-t1); }
.hs-count-unit { color: var(--hs-muted); font: 600 10px/1 var(--hs-font-mono); letter-spacing: .16em; text-transform: uppercase; }
@media (min-width: 560px) { .hs-count-num { font-size: 40px; } }

.hs-sched-list { list-style: none; display: grid; gap: 0; margin: 0; padding: 0; }
.hs-sched-item {
	display: grid;
	grid-template-columns: 64px minmax(0, 1fr);
	gap: 8px 18px;
	align-items: center;
	padding: 18px 0;
	border-bottom: 2px dotted var(--hs-line2);
}
.hs-sched-item:first-child { border-top: 2px dotted var(--hs-line2); }
.hs-sched-date {
	display: grid;
	justify-items: center;
	gap: 3px;
	padding: 8px 4px;
	background: var(--hs-bg2);
	box-shadow: 0 0 0 2px var(--hs-line2);
	font-family: var(--hs-font-mono);
	text-transform: uppercase;
}
.hs-sched-dow { color: var(--hs-t4); font-size: 10px; font-weight: 700; letter-spacing: .14em; line-height: 1; }
.hs-sched-day { font-size: 24px; font-weight: 700; line-height: 1; }
.hs-sched-mon { color: var(--hs-muted); font-size: 10px; font-weight: 600; letter-spacing: .14em; line-height: 1; }
.is-next .hs-sched-date { background: var(--hs-f4); color: var(--hs-on4); box-shadow: 0 0 0 2px var(--hs-ink); }
.is-next .hs-sched-dow, .is-next .hs-sched-mon { color: inherit; }
.hs-sched-event { margin: 0 0 4px; font-size: 16px; line-height: 1.3; }
.hs-sched-detail { margin: 0 0 6px; color: var(--hs-muted); font-size: 14.5px; line-height: 1.5; }
.hs-sched-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 0; color: var(--hs-muted); font: 500 12px/1.4 var(--hs-font-mono); letter-spacing: .04em; }
.hs-sched-local:not([hidden])::before { content: "· "; }
.hs-chip--past, .hs-chip--live { display: none; }
.is-past .hs-chip--past { display: inline-block; }
.is-live .hs-chip--live { display: inline-block; background: var(--hs-f1); color: var(--hs-on1); }
.is-past { opacity: .5; }
.is-past .hs-sched-event { text-decoration: line-through; text-decoration-thickness: 2px; }
.hs-sched-link { grid-column: 2; justify-self: start; }
@media (min-width: 640px) {
	.hs-sched-item { grid-template-columns: 64px minmax(0, 1fr) auto; }
	.hs-sched-link { grid-column: auto; justify-self: end; }
}

/* ---------- Leaderboard ---------- */
.hs-board-frame { margin: var(--hs-b) calc(var(--hs-b) * 3) calc(var(--hs-b) * 3) var(--hs-b); padding: clamp(16px, 2.4vw, 26px); --hs-frame: var(--hs-c2); }
.hs-light .hs-board-frame { --hs-frame: var(--hs-ink); }
.hs-board-cols,
.hs-board-row {
	display: grid;
	grid-template-columns: 64px minmax(0, 1fr) auto;
	gap: 6px 14px;
	align-items: center;
}
.hs-board-cols {
	margin: 0;
	padding: 0 8px 12px;
	border-bottom: 4px dotted var(--hs-line2);
	color: var(--hs-muted);
	font: 600 11px/1 var(--hs-font-mono);
	letter-spacing: .16em;
	text-transform: uppercase;
}
.hs-board-cols span:last-child { text-align: right; }
.hs-board-list { list-style: none; margin: 0; padding: 0; }
.hs-board-row { padding: 14px 8px; font-size: 16px; color: var(--hs-accent); border-bottom: 2px dotted var(--hs-line2); }
.hs-board-row:last-child { border-bottom: 0; }
.hs-board-row.is-top { background: color-mix(in srgb, var(--hs-accent) 14%, transparent); }
.hs-board-name { display: flex; align-items: center; gap: 10px; min-width: 0; }
.hs-board-name .hs-sprite { width: 22px; height: auto; flex: none; }
.hs-board-score { justify-self: end; }
.hs-board-note { grid-column: 2 / -1; color: var(--hs-muted); font: 500 12px/1.4 var(--hs-font-mono); }
.hs-board-foot { margin: 14px 8px 0; color: var(--hs-muted); font: 500 11px/1.4 var(--hs-font-mono); letter-spacing: .08em; text-transform: uppercase; }
@media (min-width: 560px) {
	.hs-board-cols, .hs-board-row { grid-template-columns: 84px minmax(0, 1fr) auto; }
	.hs-board-row { font-size: 24px; }
	.hs-board-name .hs-sprite { width: 30px; }
}

/* ---------- Join the party ---------- */
.hs-party-box { position: relative; padding: clamp(32px, 5vw, 64px) clamp(20px, 4vw, 56px); text-align: center; margin: var(--hs-b) calc(var(--hs-b) * 3) calc(var(--hs-b) * 3) var(--hs-b); --hs-frame: var(--hs-c3); }
.hs-light .hs-party-box { --hs-frame: var(--hs-ink); }
.hs-party-box .hs-px-words { justify-content: center; }
.hs-party-sprites { display: flex; justify-content: center; gap: 18px; margin-bottom: 22px; }
.hs-party-sprites .hs-sprite { width: 36px; height: auto; }

.hs-social { list-style: none; display: flex; flex-wrap: wrap; gap: 12px 16px; margin: 0; padding: 0; }
.hs-social--big, .hs-social--menu { justify-content: center; }
.hs-social a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 8px 14px 8px 10px;
	color: var(--hs-ink);
	font: 700 13px/1 var(--hs-font-mono);
	letter-spacing: .12em;
	text-transform: uppercase;
	text-decoration: none;
	box-shadow: inset 0 0 0 2px var(--hs-line2);
}
.hs-social-cursor {
	width: 8px;
	height: 14px;
	background: var(--hs-accent);
	-webkit-mask: var(--hs-i-cursor) center / contain no-repeat;
	mask: var(--hs-i-cursor) center / contain no-repeat;
	font-size: 0;
}
.hs-social a:hover, .hs-social a:focus-visible { background: var(--hs-ink); color: var(--hs-bg); box-shadow: inset 0 0 0 2px var(--hs-ink); }
.hs-social a:hover .hs-social-cursor, .hs-social a:focus-visible .hs-social-cursor { background: var(--hs-bg); }
.hs-social--big a { min-height: 52px; padding: 12px 20px 12px 14px; font-size: 15px; box-shadow: inset 0 0 0 var(--hs-b) var(--hs-ink); }

/* ==========================================================================
   Inner pages: headers, layout, side panel
   ========================================================================== */

.site-main { padding-block: clamp(40px, 6vw, 72px) clamp(56px, 8vw, 104px); }
.site-main--front { padding-block: 0; }

.page-header { margin-bottom: clamp(32px, 5vw, 52px); }
.page-title { margin: 0; font-size: 32px; line-height: 1; }
.page-title .hs-px { --hs-px-shadow: var(--hs-c1); }
.hs-light .page-title .hs-px { --hs-px-shadow: var(--hs-c4); }
@media (min-width: 700px) { .page-title { font-size: 48px; } }
@media (min-width: 1100px) { .page-title { font-size: 56px; } }
.archive-description { max-width: var(--hs-narrow); margin-top: 22px; color: var(--hs-muted); }
.archive-description p:last-child { margin-bottom: 0; }
.hs-search-again { max-width: 560px; margin-top: 26px; }

.hs-layout { display: grid; gap: 64px; }
.hs-layout-main { min-width: 0; }
@media (min-width: 1000px) {
	.has-sidebar .hs-layout { grid-template-columns: minmax(0, 1fr) 300px; gap: 56px; align-items: start; }
}
.no-sidebar.single .hs-layout-main { width: 100%; max-width: 860px; margin-inline: auto; }

.widget-area { display: grid; gap: 40px; padding: var(--hs-b); }
.widget { padding: 20px; --hs-frame: var(--hs-line2); font-size: 15px; line-height: 1.55; }
.widget-title, .widget .wp-block-heading, .wp-block-search__label {
	display: block;
	margin: -20px -20px 18px;
	padding: 10px 14px;
	background: var(--hs-line2);
	color: var(--hs-ink);
	font: 700 12px/1.3 var(--hs-font-mono);
	letter-spacing: .16em;
	text-transform: uppercase;
}
.widget ul, .widget ol { list-style: none; margin: 0; padding: 0; }
.widget li { padding: 8px 0; border-bottom: 2px dotted var(--hs-line2); }
.widget li:last-child { border-bottom: 0; padding-bottom: 0; }
.widget li li { padding-left: 14px; border-bottom: 0; }
.widget a { color: var(--hs-ink); text-decoration: none; }
.widget a:hover { color: var(--hs-t4); text-decoration: underline; }
.widget .wp-block-latest-comments__comment { margin: 0; line-height: 1.5; }
.widget .wp-block-latest-comments__comment-meta { font-size: 14px; }
.widget .wp-block-latest-posts__post-date, .widget .post-date { display: block; color: var(--hs-muted); font: 500 11px/1.6 var(--hs-font-mono); letter-spacing: .06em; text-transform: uppercase; }
.wp-block-tag-cloud, .tagcloud { display: flex; flex-wrap: wrap; gap: 8px; }
.wp-block-tag-cloud a, .tagcloud a, .entry-tags a {
	display: inline-block;
	padding: 5px 9px;
	background: var(--hs-bg3);
	color: var(--hs-ink);
	font: 600 12px/1.3 var(--hs-font-mono) !important;
	letter-spacing: .04em;
	text-decoration: none;
}
.wp-block-tag-cloud a::before, .tagcloud a::before, .entry-tags a::before { content: "#"; opacity: .55; }
.wp-block-tag-cloud a:hover, .tagcloud a:hover, .entry-tags a:hover { background: var(--hs-f4); color: var(--hs-on4); text-decoration: none; }

/* ==========================================================================
   Single post / page
   ========================================================================== */

.entry-header { margin-bottom: clamp(28px, 4vw, 40px); }
.entry-flags { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 18px; }
.entry-flags .hs-genre { padding: 6px 10px; background: var(--hs-accent); color: var(--hs-on-accent); }
.entry-title {
	margin: 0 0 20px;
	font-size: clamp(28px, 4.6vw, 48px);
	line-height: 1.1;
	letter-spacing: -.03em;
}
.entry-header .entry-meta { font-size: 13px; }

.entry-screen {
	margin: var(--hs-b) calc(var(--hs-b) * 3) clamp(36px, 5vw, 56px) var(--hs-b);
	overflow: visible;
	line-height: 0;
}
.entry-screen img { display: block; width: 100%; }
.entry-screen figcaption { padding: 10px 14px; background: var(--hs-bg2); position: relative; z-index: 3; }

.entry-content { max-width: var(--hs-narrow); font-size: clamp(17px, 1.35vw, 18.5px); }
.hs-entry--page .entry-content, .hs-entry--page .page-header { margin-inline: auto; }
.hs-entry--page .page-header, .hs-entry--page > .entry-screen { max-width: var(--hs-narrow); }
.hs-entry--wide .entry-content, .hs-entry--wide .page-header { max-width: none; }
.hs-entry--wide .entry-content > :where(:not(.alignwide):not(.alignfull)) { max-width: var(--hs-narrow); }
.entry-content--intro { margin-bottom: 48px; }
.entry-content > *:first-child { margin-top: 0; }
.entry-content > *:last-child { margin-bottom: 0; }
.entry-content::after { content: ""; display: table; clear: both; }

.entry-content h2, .entry-content h3, .entry-content h4 { margin-top: 1.9em; }
.entry-content h2 { font-size: clamp(23px, 2.6vw, 30px); padding-left: 22px; position: relative; letter-spacing: -.02em; }
.entry-content h2::before { content: ""; position: absolute; left: 0; top: .32em; width: 12px; height: 12px; background: var(--hs-accent-t, var(--hs-t4)); box-shadow: 4px 4px 0 0 var(--hs-shadow); }
.entry-content h2.has-text-align-center, .entry-content h2.is-style-pixel { padding-left: 0; }
.entry-content h2.has-text-align-center::before, .entry-content h2.is-style-pixel::before { content: none; }
.entry-content h3 { font-size: clamp(19px, 2vw, 23px); }
.entry-content h4 { font-size: 17px; letter-spacing: .06em; text-transform: uppercase; color: var(--hs-t4); }
.entry-content h5, .entry-content h6 { font-size: 14px; letter-spacing: .1em; text-transform: uppercase; color: var(--hs-muted); }
.entry-content .is-style-pixel { font-size: 32px; line-height: 1; }
.entry-content h3.is-style-pixel { font-size: 24px; }
.entry-content h1.is-style-pixel { font-size: 40px; }

.entry-content a { color: var(--hs-t2); }
.entry-content a:hover { background: var(--hs-f4); color: var(--hs-on4); text-decoration: none; }
.entry-content strong { font-weight: 750; }
.entry-content mark { padding: 1px 5px; background: var(--hs-f4); color: var(--hs-on4); }
.entry-content kbd {
	display: inline-block;
	padding: 1px 7px 2px;
	background: var(--hs-bg3);
	color: var(--hs-ink);
	font: 600 .82em/1.5 var(--hs-font-mono);
	box-shadow: 0 3px 0 0 var(--hs-line2);
}
.entry-content code { padding: 2px 6px; background: var(--hs-bg3); font: 500 .86em var(--hs-font-mono); }

.entry-content ul, .entry-content ol { margin: 0 0 1.5em; padding-left: 1.5em; }
.entry-content li { margin-bottom: .45em; }
.entry-content ul { list-style: none; }
.entry-content ul > li { position: relative; }
.entry-content ul > li::before {
	content: "";
	position: absolute;
	left: -1.25em;
	top: .62em;
	width: 8px;
	height: 8px;
	background: var(--hs-accent-t, var(--hs-t4));
}
.entry-content ol { list-style: none; counter-reset: hs-ol; }
.entry-content ol > li { position: relative; counter-increment: hs-ol; }
.entry-content ol > li::before {
	content: counter(hs-ol, decimal-leading-zero);
	position: absolute;
	left: -2.6em;
	top: .28em;
	width: 2em;
	color: var(--hs-accent-t, var(--hs-t4));
	font: 700 .78em/1.5 var(--hs-font-mono);
	text-align: right;
}
.entry-content ol { padding-left: 2.3em; }

/* Patch notes: the first bold word of each item becomes a tag. */
.entry-content ul.is-style-patch-notes { padding-left: 0; }
.entry-content ul.is-style-patch-notes > li { padding: 12px 0 12px 78px; margin: 0; border-bottom: 2px dotted var(--hs-line2); }
.entry-content ul.is-style-patch-notes > li::before { content: none; }
.entry-content ul.is-style-patch-notes > li > strong:first-child {
	position: absolute;
	left: 0;
	top: 14px;
	width: 62px;
	padding: 4px 0;
	background: var(--hs-f2);
	color: var(--hs-on2);
	font: 700 11px/1.2 var(--hs-font-mono);
	letter-spacing: .1em;
	text-align: center;
	text-transform: uppercase;
}
.entry-content ul.is-style-patch-notes > li:nth-child(4n+1) > strong:first-child { background: var(--hs-f3); color: var(--hs-on3); }
.entry-content ul.is-style-patch-notes > li:nth-child(4n+2) > strong:first-child { background: var(--hs-f1); color: var(--hs-on1); }
.entry-content ul.is-style-patch-notes > li:nth-child(4n+3) > strong:first-child { background: var(--hs-f2); color: var(--hs-on2); }
.entry-content ul.is-style-patch-notes > li:nth-child(4n+4) > strong:first-child { background: var(--hs-f4); color: var(--hs-on4); }

/* Boss dialogue */
.entry-content blockquote,
.entry-content .wp-block-quote {
	margin: 2.4em calc(var(--hs-b) * 3) 2.6em var(--hs-b);
	padding: 26px 26px 34px;
	border: 0;
	font: 500 16.5px/1.65 var(--hs-font-mono);
	color: var(--hs-ink);
}
.entry-content blockquote p { margin-bottom: .9em; }
.entry-content blockquote p:last-of-type { margin-bottom: 0; }
.entry-content blockquote::after {
	content: "";
	position: absolute;
	right: 18px;
	bottom: 14px;
	width: 14px;
	height: 8px;
	background: var(--hs-t4);
	-webkit-mask: var(--hs-i-down) center / contain no-repeat;
	mask: var(--hs-i-down) center / contain no-repeat;
}
.hs-blink .entry-content blockquote::after { animation: hs-blink .9s steps(1, end) infinite; }
.entry-content blockquote cite,
.entry-content blockquote footer {
	position: absolute;
	left: 16px;
	top: -15px;
	padding: 5px 10px;
	background: var(--hs-f4);
	color: var(--hs-on4);
	font: 700 11px/1.2 var(--hs-font-mono);
	font-style: normal;
	letter-spacing: .12em;
	text-transform: uppercase;
	box-shadow: 0 0 0 var(--hs-b) var(--hs-ink);
}
.entry-content blockquote.is-style-dialogue { padding-left: 104px; min-height: 112px; }
.entry-content blockquote.is-style-dialogue::before {
	content: "";
	position: absolute;
	left: 20px;
	top: 26px;
	width: 64px;
	height: 64px;
	background-color: var(--hs-t1);
	-webkit-mask: var(--hs-i-skull) center / contain no-repeat;
	mask: var(--hs-i-skull) center / contain no-repeat;
}
@media (max-width: 480px) {
	.entry-content blockquote.is-style-dialogue { padding-left: 26px; padding-top: 84px; }
	.entry-content blockquote.is-style-dialogue::before { width: 44px; height: 44px; }
}

.entry-content .wp-block-pullquote {
	margin: 2.6em 0;
	padding: 34px 0;
	border: 0;
	border-block: var(--hs-b) dotted var(--hs-line2);
	text-align: center;
}
.entry-content .wp-block-pullquote blockquote { margin: 0; padding: 0; background: none; box-shadow: none; }
.entry-content .wp-block-pullquote blockquote::after { content: none; }
.entry-content .wp-block-pullquote p { color: var(--hs-t4); font: 700 clamp(21px, 2.8vw, 30px)/1.3 var(--hs-font-mono); letter-spacing: -.02em; }
.entry-content .wp-block-pullquote cite { position: static; display: inline-block; margin-top: 18px; box-shadow: none; }

/* Code: a terminal */
.entry-content pre {
	margin: 2em calc(var(--hs-b) * 3) 2.2em var(--hs-b);
	padding: 44px 20px 20px;
	overflow-x: auto;
	background: color-mix(in srgb, var(--hs-bg) 70%, #000);
	color: var(--hs-t3);
	font: 500 14px/1.65 var(--hs-font-mono);
	--hs-frame: var(--hs-line2);
	tab-size: 2;
}
.hs-light .entry-content pre { background: var(--hs-ink); color: var(--hs-c3); }
.entry-content pre::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 26px;
	background:
		linear-gradient(var(--hs-c1), var(--hs-c1)) 12px 9px / 8px 8px no-repeat,
		linear-gradient(var(--hs-c4), var(--hs-c4)) 28px 9px / 8px 8px no-repeat,
		linear-gradient(var(--hs-c3), var(--hs-c3)) 44px 9px / 8px 8px no-repeat,
		var(--hs-line2);
}
.entry-content pre code { padding: 0; background: none; font-size: inherit; }
.entry-content pre.wp-block-verse { padding-top: 20px; color: var(--hs-ink); background: var(--hs-bg2); white-space: pre-wrap; }
.entry-content pre.wp-block-verse::before { content: none; }

/* Tables: a score sheet */
.entry-content .wp-block-table { margin: 2em calc(var(--hs-b) * 3) 2.2em var(--hs-b); overflow-x: auto; --hs-frame: var(--hs-line2); }
.entry-content table { width: 100%; border-collapse: collapse; font: 500 14px/1.45 var(--hs-font-mono); }
.entry-content th, .entry-content td { padding: 11px 14px; border: 0; border-bottom: 2px dotted var(--hs-line2); text-align: left; vertical-align: top; }
.entry-content thead th, .entry-content .wp-block-table thead { border-bottom: 0; }
.entry-content thead th { background: var(--hs-ink); color: var(--hs-bg); font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.entry-content tbody tr:last-child td { border-bottom: 0; }
.entry-content tbody tr:nth-child(even) td { background: color-mix(in srgb, var(--hs-ink) 4%, transparent); }
.entry-content tfoot td { border-top: var(--hs-b) solid var(--hs-line2); border-bottom: 0; font-weight: 700; }
.entry-content .wp-block-table figcaption { padding: 10px 14px; }
.entry-content .wp-block-table.is-style-stripes { border-bottom: 0; }

/* Separators: a dashed pixel rule */
.entry-content hr, .wp-block-separator {
	height: 4px;
	max-width: 168px;
	margin: 3em auto;
	border: 0 !important;
	background: repeating-linear-gradient(90deg, var(--hs-ink) 0 8px, transparent 8px 16px);
	opacity: 1;
}
.wp-block-separator.is-style-wide, .wp-block-separator.alignwide, .wp-block-separator.alignfull { max-width: none; }
.wp-block-separator.is-style-dots { height: 8px; max-width: 72px; background: repeating-linear-gradient(90deg, var(--hs-t4) 0 8px, transparent 8px 32px); }
.wp-block-separator.is-style-dots::before { content: none !important; }
.wp-block-separator.is-style-coins {
	height: 24px;
	max-width: 120px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 8' shape-rendering='crispEdges'%3E%3Cpath fill='%23ffa300' d='M2 0h4v1H2zM1 1h6v1H1zM0 2h8v4H0zM1 6h6v1H1zM2 7h4v1H2z'/%3E%3Cpath fill='%23ffec27' d='M2 1h4v1H2zM1 2h5v4H1zM2 6h3v1H2z'/%3E%3Cpath fill='%23fff' d='M2 2h1v3H2zM3 2h1v1H3z'/%3E%3C/svg%3E") 0 0 / 40px 24px repeat-x;
}

/* Images, captions, galleries */
.entry-content figure { margin: 2em 0; }
.wp-block-image img, .wp-block-gallery img { display: block; }
.entry-content .wp-block-image:not(.is-style-rounded) img { box-shadow: 0 0 0 var(--hs-b) var(--hs-ink); }
.entry-content .wp-block-image { padding: var(--hs-b); }
figcaption, .wp-element-caption, .wp-caption-text {
	margin-top: 12px !important;
	color: var(--hs-muted);
	font: 500 12px/1.5 var(--hs-font-mono);
	letter-spacing: .04em;
	text-align: left;
}
.wp-block-image figcaption::before, .entry-screen figcaption::before { content: "FIG. "; color: var(--hs-t4); font-weight: 700; }
.is-style-crt { position: relative; }
.entry-content .is-style-crt img { box-shadow: 0 0 0 var(--hs-b) var(--hs-ink), 0 0 0 calc(var(--hs-b) * 3) var(--hs-bg3), 0 0 0 calc(var(--hs-b) * 4) var(--hs-ink); }
.entry-content .wp-block-image.is-style-crt { padding: calc(var(--hs-b) * 4); }
.is-style-crt::after { inset: calc(var(--hs-b) * 4) !important; }
.wp-block-gallery { gap: 16px !important; }
.wp-block-gallery .wp-block-image { padding: 0; }
.wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
	margin: 0 !important;
	padding: 8px 10px;
	background: var(--hs-bg);
	color: var(--hs-ink);
	text-shadow: none;
	text-align: left;
}
.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::before { content: none; }
.wp-block-gallery.has-nested-images figure.wp-block-image::before { content: none; }

.alignwide { max-width: min(1200px, calc(100vw - var(--hs-pad) * 2)); }
.alignleft { float: left; margin: .4em 1.6em 1em 0; max-width: 50%; }
.alignright { float: right; margin: .4em 0 1em 1.6em; max-width: 50%; }
.aligncenter { margin-inline: auto; }

/* Cover + columns + groups */
.wp-block-cover { position: relative; padding: clamp(28px, 5vw, 64px); box-shadow: 0 0 0 var(--hs-b) var(--hs-ink); margin-inline: var(--hs-b); font-family: var(--hs-font-mono); }
.wp-block-cover .wp-block-cover__inner-container { z-index: 3; }
.wp-block-columns { gap: 32px !important; margin-block: 2em; }
.is-style-pixel-border { padding: clamp(20px, 3vw, 32px); margin: 2.2em calc(var(--hs-b) * 3) 2.4em var(--hs-b); }
.is-style-pixel-border > *:first-child { margin-top: 0; }
.is-style-pixel-border > *:last-child { margin-bottom: 0; }
.wp-block-group.has-background { padding: clamp(20px, 3vw, 32px); }
.wp-block-buttons { gap: 20px !important; margin-block: 1.8em; }
.wp-block-button__link { margin: var(--hs-b); }

/* Details: a pixel accordion, and the spoiler */
.wp-block-details { margin: 2em calc(var(--hs-b) * 3) 2em var(--hs-b); padding: 0; --hs-frame: var(--hs-line2); }
.wp-block-details summary {
	position: relative;
	display: block;
	padding: 14px 48px 14px 18px;
	font: 700 14px/1.4 var(--hs-font-mono);
	letter-spacing: .04em;
	cursor: pointer;
	list-style: none;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after {
	content: "";
	position: absolute;
	right: 18px;
	top: 50%;
	width: 14px;
	height: 14px;
	margin-top: -7px;
	background: currentColor;
	-webkit-mask: var(--hs-i-plus) center / contain no-repeat;
	mask: var(--hs-i-plus) center / contain no-repeat;
}
.wp-block-details[open] summary::after { -webkit-mask-image: var(--hs-i-minus); mask-image: var(--hs-i-minus); }
.wp-block-details > :not(summary) { margin: 0; padding: 4px 18px 18px; }
.wp-block-details.is-style-spoiler { --hs-frame: var(--hs-ink); }
.wp-block-details.is-style-spoiler summary {
	padding-left: 62px;
	background: var(--hs-f4);
	color: var(--hs-on4);
	text-transform: uppercase;
	letter-spacing: .1em;
}
.wp-block-details.is-style-spoiler summary::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 44px;
	background: repeating-linear-gradient(-45deg, var(--hs-on4) 0 8px, transparent 8px 16px);
}
.wp-block-details.is-style-spoiler summary:hover { background: var(--hs-ink); color: var(--hs-bg); }
.wp-block-details.is-style-spoiler > :not(summary) { padding-top: 18px; }

/* Misc blocks */
.wp-block-search__inside-wrapper { gap: 12px; }
.wp-block-file { padding: 14px 16px; background: var(--hs-bg2); font-family: var(--hs-font-mono); font-size: 14px; }
.wp-block-embed iframe { display: block; }
.has-drop-cap:not(:focus)::first-letter { font-family: var(--hs-font-mono); font-weight: 700; color: var(--hs-t4); margin: .08em .12em 0 0; font-size: 4.2em; }
.wp-block-latest-posts li, .wp-block-categories li, .wp-block-archives li { margin-bottom: .4em; }
.wp-block-calendar table { font-size: 13px; }

.page-links { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 2.4em; font: 700 13px/1 var(--hs-font-mono); }
.page-links-label { margin-right: 6px; color: var(--hs-muted); letter-spacing: .14em; text-transform: uppercase; }
.page-links a, .page-links > span:not(.page-links-label) { display: inline-grid; place-items: center; min-width: 40px; min-height: 40px; padding: 0 8px; background: var(--hs-bg3); color: var(--hs-ink); text-decoration: none; }
.page-links > span.current, .page-links > span:not(.page-links-label):not(:has(a)) { background: var(--hs-f4); color: var(--hs-on4); }

.entry-footer { max-width: var(--hs-narrow); margin-top: 40px; }
.entry-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.entry-tags-label { margin-right: 6px; color: var(--hs-muted); font: 600 11px/1 var(--hs-font-mono); letter-spacing: .16em; text-transform: uppercase; }

/* ---------- Review score box ---------- */
.hs-review {
	max-width: var(--hs-narrow);
	margin: 56px calc(var(--hs-b) * 3) 0 var(--hs-b);
	padding: 0;
	--hs-frame: var(--hs-c4);
}
.hs-light .hs-review { --hs-frame: var(--hs-ink); }
.hs-review-top { display: grid; gap: 0; }
.hs-review-score {
	display: grid;
	align-content: center;
	justify-items: center;
	gap: 16px;
	padding: 28px 24px;
	background: var(--hs-bg);
	text-align: center;
}
.hs-review-label { margin: 0; color: var(--hs-t4); font: 700 11px/1 var(--hs-font-mono); letter-spacing: .22em; text-transform: uppercase; }
.hs-review-num { display: flex; align-items: flex-end; justify-content: center; gap: 8px; margin: 0; font-size: 72px; line-height: 1; }
.hs-review-num > span[aria-hidden] { display: flex; align-items: flex-end; gap: 8px; }
.hs-review-num .hs-px { --hs-px-shadow: var(--hs-c2); }
.hs-light .hs-review-num .hs-px { --hs-px-shadow: var(--hs-ink); }
.hs-review-of { color: var(--hs-muted); font: 700 18px/1 var(--hs-font-mono); padding-bottom: 14px; }
.hs-review-head { padding: 26px 24px; display: grid; align-content: center; gap: 12px; }
.hs-review-word { margin: 0; color: var(--hs-t3); font: 700 13px/1 var(--hs-font-mono); letter-spacing: .2em; text-transform: uppercase; }
.hs-review-item { margin: 0; font: 700 clamp(20px, 2.4vw, 26px)/1.2 var(--hs-font-mono); letter-spacing: -.02em; }
.hs-meter--hearts { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 4px; }
.hs-meter--hearts .hs-sprite { width: 27px; height: auto; --hs-sprite-line: var(--hs-ink); }
.hs-dark .hs-meter--hearts .hs-sprite { --hs-sprite-line: #000; }
.hs-meter--bar { margin-top: 6px; height: 22px; }
.hs-meter--bar .hs-meter-fill { background: var(--hs-c3); -webkit-mask: repeating-linear-gradient(90deg, #000 0 calc(10% - 3px), transparent calc(10% - 3px) 10%); mask: repeating-linear-gradient(90deg, #000 0 calc(10% - 3px), transparent calc(10% - 3px) 10%); width: 100%; clip-path: inset(0 calc(100% - var(--hs-v) * 1%) 0 0); }
.hs-review-verdict {
	margin: 0;
	padding: 20px 24px;
	border-top: var(--hs-b) dotted var(--hs-line2);
	font-size: 17.5px;
	line-height: 1.6;
}
.hs-review-lists { display: grid; border-top: var(--hs-b) dotted var(--hs-line2); }
.hs-review-list { padding: 22px 24px 24px; }
.hs-review-list h3 { margin: 0 0 14px; font-size: 13px; letter-spacing: .18em; text-transform: uppercase; }
.hs-review-list--pros h3 { color: var(--hs-t3); }
.hs-review-list--cons h3 { color: var(--hs-t1); }
.hs-review-list ul { list-style: none; display: grid; gap: 10px; margin: 0; padding: 0; font-size: 15.5px; line-height: 1.5; }
.hs-review-list li { position: relative; padding-left: 26px; }
.hs-review-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .3em;
	width: 14px;
	height: 12px;
	background: var(--hs-t3);
	-webkit-mask: var(--hs-i-check) center / contain no-repeat;
	mask: var(--hs-i-check) center / contain no-repeat;
}
.hs-review-list--cons li::before { background: var(--hs-t1); -webkit-mask-image: var(--hs-i-cross); mask-image: var(--hs-i-cross); height: 12px; width: 12px; }
@media (min-width: 640px) {
	.hs-review-top { grid-template-columns: 240px minmax(0, 1fr); }
	.hs-review-score { border-right: var(--hs-b) dotted var(--hs-line2); }
	.hs-review-lists { grid-template-columns: 1fr 1fr; }
	.hs-review-list + .hs-review-list { border-left: var(--hs-b) dotted var(--hs-line2); }
}
@media (max-width: 639px) {
	.hs-review-head { border-top: var(--hs-b) dotted var(--hs-line2); justify-items: center; text-align: center; }
	.hs-meter--hearts { justify-content: center; }
	.hs-review-list + .hs-review-list { border-top: var(--hs-b) dotted var(--hs-line2); }
}

/* ---------- Stage navigation between posts ---------- */
.hs-post-nav {
	display: grid;
	gap: 32px;
	margin-top: 64px;
	padding: var(--hs-b) calc(var(--hs-b) * 3) calc(var(--hs-b) * 3) var(--hs-b);
}
.hs-post-nav-link { display: grid; gap: 10px; padding: 18px 20px; color: var(--hs-ink); text-decoration: none; --hs-frame: var(--hs-line2); }
.hs-post-nav-link:hover { --hs-frame: var(--hs-c4); color: var(--hs-ink); }
.hs-post-nav-link:hover .hs-post-nav-title { color: var(--hs-t4); }
.hs-post-nav-label { color: var(--hs-t4); font: 700 11px/1 var(--hs-font-mono); letter-spacing: .18em; text-transform: uppercase; }
.hs-post-nav-title { font: 700 16px/1.3 var(--hs-font-mono); letter-spacing: -.01em; }
.hs-post-nav-link--next { text-align: right; }
@media (min-width: 700px) {
	.hs-post-nav { grid-template-columns: 1fr 1fr; }
	.hs-post-nav-link--next:first-child { grid-column: 2; }
}

/* ==========================================================================
   PLAYER CHAT (comments)
   ========================================================================== */

.comments-area { margin-top: 72px; padding-top: 56px; border-top: var(--hs-b) dotted var(--hs-line2); }
.hs-chat-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 24px; margin-bottom: 36px; }
.comments-title { margin: 0; font-size: 24px; line-height: 1; }
@media (min-width: 700px) { .comments-title { font-size: 32px; } }
.hs-chat-count { margin: 0; color: var(--hs-muted); font: 600 12px/1 var(--hs-font-mono); letter-spacing: .14em; text-transform: uppercase; }

.comment-list, .comment-list .children { list-style: none; margin: 0; padding: 0; }
.comment-list > li + li { margin-top: 28px; }
.comment-list .children { margin: 24px 0 0 22px; padding-left: 22px; border-left: var(--hs-b) dotted var(--hs-line2); display: grid; gap: 24px; }
.hs-msg { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 16px; align-items: start; }
.hs-avatar { display: block; flex: none; background: var(--hs-bg2); box-shadow: 0 0 0 2px var(--hs-line2); overflow: hidden; }
.hs-avatar svg { display: block; width: 100%; height: 100%; padding: 8%; }
.hs-msg-avatar img { display: block; }
.hs-msg-body { min-width: 0; padding: 14px 16px 12px; background: var(--hs-bg2); box-shadow: inset var(--hs-b) 0 0 0 var(--hs-accent); }
.hs-msg-head { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin-bottom: 8px; font-family: var(--hs-font-mono); }
.hs-msg-author { color: var(--hs-accent); font-size: 14px; font-weight: 700; letter-spacing: .02em; }
.hs-msg-author a { color: inherit; text-decoration: none; }
.hs-msg-author a:hover { text-decoration: underline; }
.hs-msg-badge { padding: 3px 6px; background: var(--hs-f4); color: var(--hs-on4); font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.hs-msg-time { color: var(--hs-muted); font-size: 11.5px; letter-spacing: .04em; text-decoration: none; text-transform: uppercase; }
.hs-msg-time:hover { color: var(--hs-t4); }
.hs-msg-text { font-size: 16px; line-height: 1.6; }
.hs-msg-text p { margin-bottom: .8em; }
.hs-msg-text p:last-child { margin-bottom: 0; }
.hs-msg-pending { margin: 0 0 8px; color: var(--hs-t5); font: 600 12px/1.4 var(--hs-font-mono); }
.hs-msg-actions { display: flex; gap: 16px; margin-top: 10px; font: 700 11px/1 var(--hs-font-mono); letter-spacing: .14em; text-transform: uppercase; }
.hs-msg-actions a { display: inline-block; padding: 6px 0; color: var(--hs-muted); text-decoration: none; }
.hs-msg-actions a:hover { color: var(--hs-t4); }
.comment-reply-link::before { content: "↩ "; }
.bypostauthor > .hs-msg .hs-msg-body { background: color-mix(in srgb, var(--hs-c4) 8%, var(--hs-bg2)); }
.pingback, .trackback { font: 500 14px/1.5 var(--hs-font-mono); }

.comment-navigation, .comments-pagination { margin: 32px 0; font: 700 12px/1 var(--hs-font-mono); letter-spacing: .12em; text-transform: uppercase; }
.comment-navigation .nav-links { display: flex; justify-content: space-between; gap: 16px; }
.no-comments { margin: 32px 0 0; color: var(--hs-muted); font: 600 13px/1.4 var(--hs-font-mono); }

.comment-respond { margin: 48px calc(var(--hs-b) * 3) 0 var(--hs-b); padding: clamp(20px, 3vw, 32px); --hs-frame: var(--hs-line2); }
.comment-list .comment-respond { margin-top: 24px; }
.comment-reply-title { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 16px; margin: 0 0 8px; font-size: 18px; letter-spacing: .04em; text-transform: uppercase; }
.comment-reply-title small { font-size: 12px; font-weight: 600; }
.comment-notes, .logged-in-as { margin: 0 0 22px; color: var(--hs-muted); font-size: 14px; }
.comment-form { display: grid; gap: 18px; }
.comment-form p { margin: 0; }
.comment-form-cookies-consent { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: var(--hs-muted); }
.comment-form .form-submit { margin-top: 4px; }
@media (min-width: 700px) {
	.comment-form { grid-template-columns: 1fr 1fr; }
	.comment-form > * { grid-column: 1 / -1; }
	.comment-form .comment-form-author { grid-column: 1; }
	.comment-form .comment-form-email { grid-column: 2; }
}

/* ==========================================================================
   Forms
   ========================================================================== */

label { display: block; margin-bottom: 8px; font: 600 12px/1.3 var(--hs-font-mono); letter-spacing: .12em; text-transform: uppercase; }
input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="search"],
input[type="number"], input[type="tel"], input[type="date"], textarea, select {
	display: block;
	width: 100%;
	min-height: 48px;
	padding: 11px 14px;
	border: var(--hs-b) solid var(--hs-line2);
	border-radius: 0;
	background: var(--hs-bg);
	color: var(--hs-ink);
	font: 500 15px/1.4 var(--hs-font-mono);
	-webkit-appearance: none;
	appearance: none;
}
textarea { min-height: 150px; resize: vertical; }
input:focus-visible, textarea:focus-visible, select:focus-visible { border-color: var(--hs-focus); outline-offset: 0; }
::placeholder { color: var(--hs-muted); opacity: .75; }
input[type="checkbox"], input[type="radio"] { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--hs-c3); flex: none; }
.comment-form-cookies-consent label { margin: 0; font: inherit; letter-spacing: 0; text-transform: none; }

.search-form { position: relative; display: flex; align-items: stretch; gap: calc(var(--hs-b) * 2 + 6px); }
.search-prompt {
	position: absolute;
	left: 14px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--hs-t3);
	font: 700 16px/1 var(--hs-font-mono);
	pointer-events: none;
}
.search-form .search-field { flex: 1; min-width: 0; padding-left: 34px; }
.search-form .search-submit { margin-block: 0; margin-right: var(--hs-b); min-height: 0; align-self: stretch; }

/* Locked stage */
.hs-locked { max-width: 560px; padding: 28px; margin: var(--hs-b) calc(var(--hs-b) * 3) calc(var(--hs-b) * 3) var(--hs-b); background: var(--hs-bg2); box-shadow: 0 0 0 var(--hs-b) var(--hs-c1); }
.hs-locked-title { display: flex; align-items: center; gap: 14px; margin: 0 0 14px; font-size: 24px; }
.hs-locked-title .hs-sprite { width: 36px; height: auto; }
.hs-locked-note { margin: 0 0 18px; color: var(--hs-muted); font-size: 15px; }
.hs-locked-row { display: flex; flex-wrap: wrap; gap: 14px; margin: 0; }
.hs-locked-row input { flex: 1 1 200px; width: auto; }

/* ==========================================================================
   Pagination: STAGE 1-1 → 1-2
   ========================================================================== */

.hs-stages { margin-top: 64px; text-align: center; }
.hs-stages-now { margin: 0 0 18px; color: var(--hs-t4); font: 700 13px/1 var(--hs-font-mono); letter-spacing: .24em; text-transform: uppercase; }
.hs-stages-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 14px 18px; }
.hs-stage-list { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 0; padding: 0; }
.hs-stage, .hs-stage-step {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-width: 52px;
	min-height: 44px;
	padding: 8px 12px;
	background: var(--hs-bg2);
	color: var(--hs-ink);
	font: 700 14px/1 var(--hs-font-mono);
	letter-spacing: .06em;
	text-decoration: none;
	box-shadow: 0 0 0 var(--hs-b) var(--hs-line2);
}
a.hs-stage:hover, a.hs-stage-step:hover { background: var(--hs-ink); color: var(--hs-bg); box-shadow: 0 0 0 var(--hs-b) var(--hs-ink); }
.hs-stage.is-current { background: var(--hs-f4); color: var(--hs-on4); box-shadow: 0 0 0 var(--hs-b) var(--hs-ink); }
.hs-stage-step { padding-inline: 16px; background: var(--hs-bg); box-shadow: 0 0 0 var(--hs-b) var(--hs-ink); }
.hs-stage-step.is-disabled { opacity: .35; }
.hs-stage-gap { align-self: center; color: var(--hs-muted); font-family: var(--hs-font-mono); letter-spacing: .2em; }

/* ==========================================================================
   Search results, nothing found, 404
   ========================================================================== */

.hs-results { display: grid; }
.hs-result { position: relative; display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; gap: 16px; align-items: start; padding: 24px 0; border-bottom: 2px dotted var(--hs-line2); }
.hs-result:first-child { border-top: 2px dotted var(--hs-line2); }
.hs-result-cursor { width: 10px; height: 18px; margin-top: 26px; background: var(--hs-t4); -webkit-mask: var(--hs-i-cursor) center / contain no-repeat; mask: var(--hs-i-cursor) center / contain no-repeat; visibility: hidden; font-size: 0; }
.hs-result:hover .hs-result-cursor, .hs-result:focus-within .hs-result-cursor { visibility: visible; }
.hs-result-type { margin: 0 0 6px; color: var(--hs-t4); font: 700 11px/1 var(--hs-font-mono); letter-spacing: .18em; text-transform: uppercase; }
.hs-result-title { margin: 0 0 8px; font-size: clamp(19px, 2.2vw, 23px); }
.hs-result-title a { color: var(--hs-ink); text-decoration: none; }
.hs-result-title a:hover { color: var(--hs-t4); text-decoration: underline; }
.hs-result-excerpt { margin: 0 0 10px; color: var(--hs-muted); font-size: 15.5px; line-height: 1.55; }
.hs-result .hs-score-badge { position: static; box-shadow: 0 0 0 var(--hs-b) var(--hs-ink); margin: var(--hs-b); }
.hs-result .entry-meta { margin-top: 0; }

.hs-none { max-width: 640px; margin: var(--hs-b) calc(var(--hs-b) * 3) calc(var(--hs-b) * 3) var(--hs-b); padding: clamp(24px, 4vw, 40px); }
.hs-none-sprite { width: 54px; height: auto; margin-bottom: 18px; }
.hs-none-title { margin: 0 0 16px; font-size: 24px; line-height: 1; }
.hs-none p { color: var(--hs-muted); }

.hs-gameover { padding-block: clamp(16px, 4vw, 48px) 24px; text-align: center; }
.hs-gameover .hs-kicker { color: var(--hs-t1); }
.hs-gameover-title { margin: 0 0 40px; font-size: 56px; line-height: 1; }
.hs-gameover-title .hs-px { --hs-px-shadow: var(--hs-c2); }
.hs-light .hs-gameover-title .hs-px { --hs-px-shadow: var(--hs-ink); }
.hs-gameover-title .hs-px-words { justify-content: center; }
@media (min-width: 640px) { .hs-gameover-title { font-size: 88px; } }
@media (min-width: 1100px) { .hs-gameover-title { font-size: 120px; } }
.hs-continue { display: inline-flex; align-items: center; gap: 24px; margin-bottom: 40px; }
.hs-continue-label { margin: 0; font-size: 24px; color: var(--hs-ink); }
.hs-continue-num { margin: 0; font-size: 56px; line-height: 1; color: var(--hs-t4); min-width: 1em; }
.hs-continue-num .hs-px { --hs-px-shadow: var(--hs-c1); }
.hs-continue.is-out .hs-continue-num { color: var(--hs-t1); font-size: 24px; }
@media (min-width: 640px) { .hs-continue-label { font-size: 32px; } .hs-continue-num { font-size: 72px; } .hs-continue.is-out .hs-continue-num { font-size: 32px; } }
.hs-gameover-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 20px 28px; margin-bottom: 44px; }
.hs-gameover-search { max-width: 520px; margin: 0 auto 72px; text-align: left; }
.hs-gameover-search > p { margin: 0 0 12px; color: var(--hs-muted); font: 600 12px/1 var(--hs-font-mono); letter-spacing: .16em; text-transform: uppercase; text-align: center; }

/* ==========================================================================
   Footer
   ========================================================================== */

.site-footer { border-top: var(--hs-b) solid var(--hs-ink); background: color-mix(in srgb, var(--hs-bg) 60%, #000); }
.hs-light .site-footer { background: var(--hs-bg2); }
.hs-coin { border-bottom: var(--hs-b) dotted var(--hs-line2); }
.hs-coin-inner { display: flex; align-items: center; justify-content: center; gap: clamp(14px, 3vw, 32px); padding-block: clamp(36px, 5vw, 60px); }
.hs-coin-text { margin: 0; font-size: 16px; color: var(--hs-t4); text-align: center; }
.hs-coin-text .hs-px { --hs-px-shadow: var(--hs-c1); }
.hs-coin-text .hs-px-words { justify-content: center; }
.hs-light .hs-coin-text .hs-px { --hs-px-shadow: var(--hs-c4); }
@media (min-width: 700px) { .hs-coin-text { font-size: 24px; } }
@media (min-width: 1100px) { .hs-coin-text { font-size: 32px; } }
.hs-coin-sprite { width: 32px; height: auto; flex: none; }
@keyframes hs-spin { 0% { transform: scaleX(1); } 25% { transform: scaleX(.35); } 50% { transform: scaleX(1); } 75% { transform: scaleX(.35); } 100% { transform: scaleX(1); } }
.hs-blink .hs-coin-sprite { animation: hs-spin 1.2s steps(1, end) infinite; }
@media (min-width: 700px) { .hs-coin-sprite { width: 48px; } }

.footer-widgets { display: grid; gap: 40px 36px; padding: calc(56px + var(--hs-b)) var(--hs-b) 8px; }
@media (min-width: 700px) { .footer-widgets { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); } }
.footer-bottom { display: grid; justify-items: center; gap: 22px; padding-block: 56px 48px; text-align: center; }
.footer-name { margin: 0; font-size: 16px; }
.footer-name a { color: var(--hs-ink); text-decoration: none; }
.footer-name a:hover { color: var(--hs-t4); }
.hs-social--footer { justify-content: center; }
.footer-navigation ul { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 8px; margin: 0; padding: 0; }
.footer-navigation a { display: inline-block; padding: 10px 12px; color: var(--hs-muted); font: 600 12px/1 var(--hs-font-mono); letter-spacing: .14em; text-transform: uppercase; text-decoration: none; }
.footer-navigation a:hover { color: var(--hs-t4); }
.site-copyright, .theme-credit { margin: 0; color: var(--hs-muted); font: 500 12px/1.6 var(--hs-font-mono); letter-spacing: .06em; }
.site-copyright a, .theme-credit a { color: var(--hs-ink); }
.site-copyright a:hover, .theme-credit a:hover { color: var(--hs-t4); }

/* ==========================================================================
   LOADING… reading progress, toast, party mode
   ========================================================================== */

.hs-loading { position: fixed; left: 0; right: 0; top: 0; z-index: 9996; pointer-events: none; }
.admin-bar .hs-loading { top: 32px; }
@media (max-width: 782px) { .admin-bar .hs-loading { top: 46px; } }
.hs-loading-bar { display: block; height: 8px; background: color-mix(in srgb, var(--hs-bg) 60%, #000); }
.hs-loading-fill {
	display: block;
	height: 100%;
	width: calc(var(--hs-p, 0) * 1%);
	background: var(--hs-c3);
	-webkit-mask: repeating-linear-gradient(90deg, #000 0 12px, transparent 12px 16px);
	mask: repeating-linear-gradient(90deg, #000 0 12px, transparent 12px 16px);
}
.hs-loading-label {
	position: absolute;
	right: 12px;
	top: 14px;
	padding: 5px 8px;
	background: var(--hs-ink);
	color: var(--hs-bg);
	font: 700 10px/1 var(--hs-font-mono);
	letter-spacing: .16em;
	text-transform: uppercase;
	visibility: hidden;
}
.hs-loading.is-active .hs-loading-label { visibility: visible; }
.hs-loading.is-done .hs-loading-fill { background: var(--hs-c4); }
.no-js .hs-loading { display: none; }

.hs-toast {
	position: fixed;
	left: 50%;
	bottom: 28px;
	z-index: 9998;
	transform: translateX(-50%);
	max-width: calc(100vw - 40px);
	padding: 14px 20px;
	background: var(--hs-f4);
	color: var(--hs-on4);
	font: 700 13px/1.3 var(--hs-font-mono);
	letter-spacing: .12em;
	text-transform: uppercase;
	text-align: center;
	box-shadow: 0 0 0 var(--hs-b) var(--hs-ink), calc(var(--hs-b) * 2) calc(var(--hs-b) * 2) 0 0 var(--hs-shadow);
}
.hs-toast[hidden] { display: none; }
.hs-confetti { position: fixed; inset: 0; z-index: 9997; width: 100%; height: 100%; max-width: none; pointer-events: none; }

/* ==========================================================================
   Presets that need more than colours
   ========================================================================== */

/* Paper: graph paper under everything. */
.preset-paper {
	background-image:
		linear-gradient(color-mix(in srgb, var(--hs-c2) 17%, transparent) 1px, transparent 1px),
		linear-gradient(90deg, color-mix(in srgb, var(--hs-c2) 17%, transparent) 1px, transparent 1px),
		linear-gradient(color-mix(in srgb, var(--hs-c2) 30%, transparent) 1px, transparent 1px),
		linear-gradient(90deg, color-mix(in srgb, var(--hs-c2) 30%, transparent) 1px, transparent 1px);
	background-size: 16px 16px, 16px 16px, 80px 80px, 80px 80px;
}
.preset-paper .site-header, .preset-paper .hs-hero { background-color: transparent; }
.preset-paper .hs-hero { background-image: none; }
.preset-paper .hs-hero-sky { opacity: .5; }

/* Handheld: pictures go through the same four greens as everything else. */
.preset-handheld .hs-cart-art,
.preset-handheld .entry-screen,
.preset-handheld .hs-player-art,
.preset-handheld .hs-player-portrait { background: #9bbc0f; isolation: isolate; }
.preset-handheld .hs-cart-art img,
.preset-handheld .entry-screen img,
.preset-handheld .hs-player-art img,
.preset-handheld .hs-player-portrait img { filter: grayscale(1) contrast(1.25) brightness(1.1); mix-blend-mode: multiply; }
.preset-handheld .hs-cart-art::before,
.preset-handheld .entry-screen::before,
.preset-handheld .hs-player-art::before,
.preset-handheld .hs-player-portrait::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: #0f380f; mix-blend-mode: lighten; }
.preset-handheld .hs-player-art, .preset-handheld .hs-player-portrait { position: relative; }
.preset-handheld .hs-hero { background-image: none; }

/* Vapor: a sunset behind the title. */
.preset-vapor .hs-hero {
	background:
		linear-gradient(180deg, transparent 0 55%, color-mix(in srgb, var(--hs-c1) 40%, transparent) 100%),
		radial-gradient(ellipse 70% 50% at 50% 100%, color-mix(in srgb, var(--hs-c5) 50%, transparent), transparent 70%),
		var(--hs-bg);
}
.preset-vapor .hs-hero-ground {
	background:
		linear-gradient(var(--hs-c2), var(--hs-c2)) top / 100% 4px no-repeat,
		repeating-linear-gradient(90deg, var(--hs-c1) 0 2px, transparent 2px 40px),
		repeating-linear-gradient(0deg, var(--hs-c1) 0 2px, transparent 2px 10px),
		var(--hs-bg);
}

/* ==========================================================================
   Patterns
   ========================================================================== */

.hs-pattern-hero {
	position: relative;
	padding: clamp(56px, 9vw, 120px) var(--hs-pad);
	background:
		radial-gradient(circle, var(--hs-ink) 1px, transparent 1.5px) 20px 30px / 190px 170px,
		radial-gradient(circle, var(--hs-c2) 1px, transparent 1.5px) 110px 140px / 270px 230px,
		radial-gradient(circle, var(--hs-c4) 1.5px, transparent 2px) 60px 200px / 410px 370px,
		radial-gradient(ellipse 80% 60% at 50% 40%, color-mix(in srgb, var(--hs-c6) 38%, transparent), transparent 70%),
		var(--hs-bg);
	border-block: var(--hs-b) solid var(--hs-ink);
	text-align: center;
}
.entry-content .hs-pattern-hero .is-style-pixel { font-size: clamp(40px, 6vw, 72px); }
.hs-pattern-hero .hs-px { --hs-px-shadow: var(--hs-c2); }
.hs-pattern-stat .is-style-pixel { font-size: 40px !important; color: var(--hs-t4); margin-bottom: 14px; }
.hs-pattern-stat .hs-kicker { margin: 0; color: var(--hs-muted); }
.hs-pattern-hud { gap: 24px !important; }
.hs-pattern-score-num { font-size: 72px !important; color: var(--hs-t4); margin: 0 !important; }
.hs-pattern-score-num .hs-px { --hs-px-shadow: var(--hs-c2); }
.hs-pattern-score h4 { margin-top: 0; }
.hs-pattern-match .is-style-pixel { font-size: 48px !important; margin: 0; }
.hs-pattern-match .wp-block-column:nth-child(2) .is-style-pixel { font-size: 24px !important; color: var(--hs-t1); }
.hs-pattern-match .hs-kicker { margin-bottom: 12px; }
.hs-pattern-cta { text-align: center; --hs-frame: var(--hs-c3); }
.hs-pattern-patch .is-style-pixel { margin-top: 0; }
.hs-front-content .entry-content { max-width: none; }
.hs-front-content .entry-content > :where(:not(.alignwide):not(.alignfull)) { max-width: var(--hs-narrow); margin-inline: auto; }

/* ==========================================================================
   Reduced motion: every blink, flicker, bob, roll-up and parallax stops.
   (The scripts check the same preference and draw a still frame instead.)
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation: none !important;
		transition: none !important;
		scroll-behavior: auto !important;
	}
	.hs-cart:hover { transform: none; }
	.hs-crt { display: none !important; }
	.hs-scanlines .hs-hero::after,
	.hs-scanlines .hs-cart-art::after,
	.hs-scanlines .entry-screen::after,
	.hs-scanlines .hs-tv-screen::after,
	.hs-scanlines .is-style-crt::after { content: none; }
}

/* ==========================================================================
   Print
   ========================================================================== */

@media print {
	.hs-crt, .hs-hud, .main-navigation, .menu-toggle, .hs-loading, .hs-toast, .site-footer, .comments-area, .hs-post-nav, .widget-area, .hs-hero-sky, .hs-hero-sprites { display: none !important; }
	body { background: #fff !important; color: #000 !important; }
	.entry-content { max-width: none; }
	a { color: #000 !important; }
}

/* ---- Legibility pass ------------------------------------------------------
   1. The hero title's extrusion was drawn in --hs-c2, which is also one of the
      face's colour bands, so three layers of it merged into the letters and the
      name read as a blue blob. The drop is now a DARK version of that colour —
      it still reads as depth, but no longer as more letter.
   2. "Press Start" blinked the whole label, so the primary button was blank
      for 60% of every second (and in any screenshot, half the time). Only the
      cursor blinks now; the words never disappear. */
.hs-hero-title .hs-px { --hs-px-shadow: color-mix(in srgb, var(--hs-c2) 38%, #05030c); }
.hs-blink .hs-btn .hs-blinker { animation: none; }
.hs-blink .hs-btn .hs-cur { animation: hs-blink 1.15s steps(1, end) infinite; }
@media (prefers-reduced-motion: reduce) { .hs-blink .hs-btn .hs-cur { animation: none; } }
.hs-review-num .hs-px, .hs-card .hs-px--bands { --hs-px-shadow: color-mix(in srgb, var(--hs-c2) 38%, #05030c); }
