.hpg-launcher {
	--hpg-purple: #654b7a;
	--hpg-purple-dark: #493456;
	--hpg-purple-light: #9c7bb9;
	--hpg-gold: #d88a03;
	--hpg-green: #5d8f63;
	--hpg-ink: #25222a;
	--hpg-muted: #68636d;
	--hpg-line: #e4dfe7;
	--hpg-surface: #fff;
	--hpg-soft: #f7f4f8;
	clear: both;
	width: 100%;
	max-width: var(--hpg-max-width, 1180px);
	margin: var(--hpg-section-gap, 22px) auto 2.5rem;
	color: var(--hpg-ink);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

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

.hpg-hero {
	position: relative;
	overflow: hidden;
	padding: var(--hpg-hero-padding, 48px);
	border-radius: 24px;
	background:
		radial-gradient(circle at 90% 15%, rgba(255, 255, 255, 0.16), transparent 24%),
		linear-gradient(135deg, var(--hpg-purple-dark), var(--hpg-purple) 55%, var(--hpg-purple-light));
	color: #fff;
	text-align: center;
	box-shadow: 0 16px 40px rgba(73, 52, 86, 0.22);
}

.hpg-hero::after {
	position: absolute;
	right: -40px;
	bottom: -80px;
	width: 240px;
	height: 240px;
	border: 28px solid rgba(255, 255, 255, 0.07);
	border-radius: 50%;
	content: "";
}

.hpg-hero h2 {
	position: relative;
	z-index: 1;
	margin: 0.2rem 0 0.7rem !important;
	color: #fff !important;
	font-size: clamp(1.8rem, 4vw, var(--hpg-hero-title-size, 48px)) !important;
	line-height: 1.08 !important;
}

.hpg-hero p {
	position: relative;
	z-index: 1;
	max-width: 720px;
	margin: 0 auto !important;
	color: rgba(255, 255, 255, 0.9);
	font-size: 1.05rem;
}

.hpg-hero .hpg-kicker {
	margin-bottom: 0.45rem !important;
	color: #f4d79e;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.hpg-game-picker {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	margin: var(--hpg-section-gap, 22px) 0;
}

.hpg-game-card {
	position: relative;
	display: grid;
	grid-template-columns: calc(var(--hpg-card-icon-size, 78px) + 4px) minmax(0, 1fr);
	gap: 17px;
	align-items: center;
	min-height: var(--hpg-card-min-height, 172px);
	margin: 0;
	padding: 20px 22px;
	overflow: hidden;
	border: 2px solid var(--hpg-line);
	border-radius: 20px;
	background: var(--hpg-surface);
	color: var(--hpg-ink);
	font: inherit;
	text-align: left;
	cursor: pointer;
	box-shadow: 0 7px 22px rgba(37, 34, 42, 0.07);
	transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.hpg-game-card:hover {
	border-color: #c4b4cc;
	transform: translateY(-2px);
	box-shadow: 0 13px 30px rgba(37, 34, 42, 0.12);
}

.hpg-game-card:focus-visible {
	outline: 3px solid #1689d8;
	outline-offset: 3px;
}

.hpg-game-card[aria-selected="true"] {
	border-color: var(--hpg-purple);
	box-shadow: 0 12px 30px rgba(101, 75, 122, 0.2);
}

.hpg-game-card[aria-selected="true"]::after {
	position: absolute;
	top: 0;
	right: 0;
	padding: 5px 11px;
	border-radius: 0 17px 0 12px;
	background: var(--hpg-purple);
	color: #fff;
	content: "Selected";
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.hpg-game-mark {
	display: grid;
	width: var(--hpg-card-icon-size, 78px);
	height: var(--hpg-card-icon-size, 78px);
	border-radius: 20px;
	place-items: center;
	color: #fff;
	box-shadow: inset 0 1px rgba(255, 255, 255, 0.22);
}

.hpg-game-mark--the5 {
	background: linear-gradient(145deg, var(--hpg-purple), var(--hpg-purple-light));
}

.hpg-game-mark--the5 span {
	font-family: Georgia, "Times New Roman", serif;
	font-size: 3.3rem;
	font-weight: 800;
	line-height: 1;
}

.hpg-game-mark--herdle {
	background: linear-gradient(145deg, #416646, var(--hpg-green));
}

.hpg-herdle-grid {
	display: grid;
	grid-template-columns: repeat(5, 10px);
	gap: 3px;
}

.hpg-herdle-grid i {
	width: 10px;
	height: 28px;
	border-radius: 2px;
	background: rgba(255, 255, 255, 0.92);
	transform: translateY(0);
}

.hpg-herdle-grid i:nth-child(2),
.hpg-herdle-grid i:nth-child(4) {
	transform: translateY(6px);
	opacity: 0.72;
}

.hpg-game-copy {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.hpg-game-copy strong {
	margin: 1px 0 5px;
	font-size: 1.55rem;
	line-height: 1.1;
}

.hpg-game-copy > span:last-child {
	color: var(--hpg-muted);
	font-size: 0.92rem;
	line-height: 1.45;
}

.hpg-game-eyebrow {
	color: var(--hpg-purple);
	font-size: 0.73rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.hpg-play-label {
	position: absolute;
	right: 20px;
	bottom: 13px;
	color: var(--hpg-purple);
	font-size: 0.8rem;
	font-weight: 800;
}

.hpg-player {
	overflow: hidden;
	border: 1px solid var(--hpg-line);
	border-radius: 22px;
	background: var(--hpg-surface);
	box-shadow: 0 14px 38px rgba(37, 34, 42, 0.11);
}

.hpg-player:focus {
	outline: none;
}

.hpg-player-bar {
	display: flex;
	gap: 16px;
	align-items: center;
	justify-content: space-between;
	padding: 13px 16px;
	border-bottom: 1px solid var(--hpg-line);
	background: var(--hpg-soft);
}

.hpg-player-heading {
	display: flex;
	gap: 7px;
	align-items: center;
	white-space: nowrap;
}

.hpg-live-dot {
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: #3ba260;
	box-shadow: 0 0 0 4px rgba(59, 162, 96, 0.13);
}

.hpg-player-actions {
	display: flex;
	gap: 7px;
	align-items: center;
	justify-content: flex-end;
	flex-wrap: wrap;
}

.hpg-tool-button,
.hpg-site-link {
	display: inline-flex;
	gap: 5px;
	align-items: center;
	min-height: 34px;
	margin: 0;
	padding: 6px 11px;
	border: 1px solid #d7d0da;
	border-radius: 9px;
	background: #fff;
	color: var(--hpg-purple);
	font: inherit;
	font-size: 0.78rem;
	font-weight: 700;
	line-height: 1;
	text-decoration: none !important;
	cursor: pointer;
}

.hpg-tool-button:hover,
.hpg-site-link:hover {
	border-color: var(--hpg-purple);
	background: #f1ebf4;
	color: var(--hpg-purple-dark);
}

.hpg-site-link {
	border-color: var(--hpg-purple);
	background: var(--hpg-purple);
	color: #fff !important;
}

.hpg-site-link:hover {
	background: var(--hpg-purple-dark);
	color: #fff !important;
}

.hpg-frame-shell {
	position: relative;
	height: 820px;
	overflow: hidden;
	background: #fff;
	transition: height 220ms ease;
}

.hpg-frame-shell.is-expanded {
	height: min(1200px, 92vh) !important;
}

.hpg-frame {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	background: #fff;
}

.hpg-loading {
	position: absolute;
	z-index: 2;
	inset: 0;
	display: flex;
	gap: 10px;
	align-items: center;
	justify-content: center;
	background: #fff;
	color: var(--hpg-muted);
	font-weight: 700;
	transition: opacity 180ms ease, visibility 180ms ease;
}

.hpg-loading.is-hidden {
	visibility: hidden;
	opacity: 0;
}

.hpg-spinner {
	width: 24px;
	height: 24px;
	border: 3px solid #ddd4e1;
	border-top-color: var(--hpg-purple);
	border-radius: 50%;
	animation: hpg-spin 700ms linear infinite;
}

@keyframes hpg-spin {
	to { transform: rotate(360deg); }
}

.hpg-frame-note {
	margin: 0 !important;
	padding: 9px 16px 11px;
	border-top: 1px solid var(--hpg-line);
	background: var(--hpg-soft);
	color: var(--hpg-muted);
	font-size: 0.75rem;
	line-height: 1.4;
	text-align: center;
}

.hpg-player:fullscreen {
	display: flex;
	flex-direction: column;
	width: 100vw;
	height: 100vh;
	border: 0;
	border-radius: 0;
}

.hpg-player:fullscreen .hpg-frame-shell {
	flex: 1;
	height: auto !important;
}

.hpg-player:fullscreen .hpg-frame-note {
	display: none;
}

.hpg-about {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	margin-top: var(--hpg-section-gap, 22px);
}

.hpg-about > div {
	padding: 20px 22px;
	border: 1px solid var(--hpg-line);
	border-radius: 16px;
	background: var(--hpg-soft);
}

.hpg-about h3 {
	margin: 0 0 7px !important;
	color: var(--hpg-purple-dark) !important;
	font-size: 1.12rem !important;
}

.hpg-about p {
	margin: 0 !important;
	color: var(--hpg-muted);
	font-size: 0.9rem;
	line-height: 1.55;
}

@media (max-width: 800px) {
	.hpg-game-picker,
	.hpg-about {
		grid-template-columns: 1fr;
	}

	.hpg-player-bar {
		align-items: flex-start;
		flex-direction: column;
	}

	.hpg-player-actions {
		justify-content: flex-start;
		width: 100%;
	}

	.hpg-frame-shell {
		height: var(--hpg-mobile-frame-height, 820px);
	}
}

@media (max-width: 520px) {
	.hpg-launcher {
		margin-top: 0.75rem;
	}

	.hpg-hero {
		padding: 1.6rem 1.1rem;
		border-radius: 17px;
	}

	.hpg-game-card {
		grid-template-columns: 62px minmax(0, 1fr);
		gap: 13px;
		min-height: 162px;
		padding: 17px 14px 28px;
		border-radius: 16px;
	}

	.hpg-game-mark {
		width: 60px;
		height: 60px;
		border-radius: 15px;
	}

	.hpg-game-mark--the5 span {
		font-size: 2.5rem;
	}

	.hpg-herdle-grid {
		grid-template-columns: repeat(5, 7px);
		gap: 2px;
	}

	.hpg-herdle-grid i {
		width: 7px;
		height: 21px;
	}

	.hpg-game-copy strong {
		font-size: 1.3rem;
	}

	.hpg-game-copy > span:last-child {
		font-size: 0.84rem;
	}

	.hpg-player {
		border-radius: 14px;
	}

	.hpg-player-heading {
		font-size: 0.88rem;
	}

	.hpg-tool-button,
	.hpg-site-link {
		flex: 1 1 auto;
		justify-content: center;
	}

	.hpg-frame-shell {
		height: var(--hpg-mobile-frame-height, 820px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.hpg-game-card,
	.hpg-frame-shell,
	.hpg-loading {
		transition: none;
	}

	.hpg-spinner {
		animation-duration: 1.4s;
	}
}

/* Promotional widgets and shortcode cards */
.hpg-promo {
	--hpg-promo-ink: #27232b;
	position: relative;
	display: flex;
	gap: 18px;
	align-items: center;
	width: 100%;
	padding: 22px;
	overflow: hidden;
	border: 1px solid rgba(101, 75, 122, 0.2);
	border-radius: 18px;
	background:
		radial-gradient(circle at 100% 0, rgba(156, 123, 185, 0.2), transparent 42%),
		linear-gradient(145deg, #fff, #f7f3f8);
	color: var(--hpg-promo-ink);
	box-shadow: 0 9px 24px rgba(46, 34, 53, 0.1);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.hpg-promo *,
.hpg-promo-modal * {
	box-sizing: border-box;
}

.hpg-promo-art {
	position: relative;
	flex: 0 0 84px;
	width: 84px;
	height: 84px;
}

.hpg-promo-five,
.hpg-promo-word {
	position: absolute;
	display: grid;
	place-items: center;
	box-shadow: 0 7px 18px rgba(46, 34, 53, 0.2);
}

.hpg-promo-five {
	inset: 0 19px 19px 0;
	border-radius: 18px;
	background: linear-gradient(145deg, var(--hpg-purple-dark), var(--hpg-purple-light));
	color: #fff;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 2.6rem;
	font-weight: 800;
}

.hpg-promo-word {
	right: 0;
	bottom: 0;
	grid-template-columns: repeat(5, 6px);
	gap: 2px;
	width: 49px;
	height: 37px;
	border: 3px solid #fff;
	border-radius: 10px;
	background: #547d59;
}

.hpg-promo-word i {
	width: 6px;
	height: 17px;
	border-radius: 1px;
	background: #fff;
}

.hpg-promo-word i:nth-child(even) {
	height: 12px;
	opacity: 0.72;
}

.hpg-promo-copy {
	position: relative;
	z-index: 1;
	flex: 1;
	min-width: 0;
}

.hpg-promo-kicker {
	display: block;
	margin-bottom: 3px;
	color: var(--hpg-purple);
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.hpg-promo-title {
	display: block;
	margin-bottom: 6px;
	color: var(--hpg-promo-ink);
	font-size: 1.3rem;
	line-height: 1.12;
}

.hpg-promo-copy p {
	margin: 0 0 13px !important;
	color: #68616c;
	font-size: 0.86rem;
	line-height: 1.45;
}

.hpg-promo-button {
	display: inline-flex;
	gap: 7px;
	align-items: center;
	justify-content: center;
	min-height: 37px;
	margin: 0;
	padding: 8px 14px;
	border: 0;
	border-radius: 9px;
	background: var(--hpg-purple);
	color: #fff !important;
	font: inherit;
	font-size: 0.78rem;
	font-weight: 800;
	line-height: 1;
	text-decoration: none !important;
	cursor: pointer;
	box-shadow: 0 5px 13px rgba(101, 75, 122, 0.25);
	transition: transform 150ms ease, background 150ms ease;
}

.hpg-promo-button:hover {
	background: var(--hpg-purple-dark);
	color: #fff !important;
	transform: translateY(-1px);
}

.hpg-promo--compact {
	gap: 12px;
	padding: 15px;
	border-radius: 14px;
}

.hpg-promo--compact .hpg-promo-art {
	flex-basis: 59px;
	width: 59px;
	height: 59px;
}

.hpg-promo--compact .hpg-promo-five {
	inset: 0 12px 12px 0;
	border-radius: 12px;
	font-size: 1.85rem;
}

.hpg-promo--compact .hpg-promo-word {
	width: 35px;
	height: 27px;
	grid-template-columns: repeat(5, 4px);
	gap: 1px;
	border-width: 2px;
	border-radius: 7px;
}

.hpg-promo--compact .hpg-promo-word i {
	width: 4px;
	height: 12px;
}

.hpg-promo--compact .hpg-promo-word i:nth-child(even) {
	height: 8px;
}

.hpg-promo--compact .hpg-promo-title {
	font-size: 1.05rem;
}

.hpg-promo--compact .hpg-promo-copy p,
.hpg-promo--compact .hpg-promo-kicker {
	display: none;
}

.hpg-promo--compact .hpg-promo-button {
	min-height: 32px;
	padding: 6px 10px;
	font-size: 0.72rem;
}

.hpg-promo--banner {
	justify-content: center;
	max-width: 100%;
	padding: 25px 30px;
	border: 0;
	background:
		radial-gradient(circle at 8% 50%, rgba(255, 255, 255, 0.14), transparent 20%),
		linear-gradient(130deg, var(--hpg-purple-dark), var(--hpg-purple), var(--hpg-purple-light));
	color: #fff;
}

.hpg-promo--banner .hpg-promo-copy {
	display: grid;
	grid-template-columns: minmax(160px, 0.7fr) minmax(220px, 1fr) auto;
	gap: 20px;
	align-items: center;
}

.hpg-promo--banner .hpg-promo-kicker,
.hpg-promo--banner .hpg-promo-title,
.hpg-promo--banner .hpg-promo-copy p {
	color: #fff;
}

.hpg-promo--banner .hpg-promo-title {
	margin: 0;
}

.hpg-promo--banner .hpg-promo-copy p {
	margin: 0 !important;
}

.hpg-promo--banner .hpg-promo-button {
	background: #fff;
	color: var(--hpg-purple-dark) !important;
	box-shadow: none;
}

/* Lightweight chooser modal. No game iframe is loaded here. */
body.hpg-modal-open {
	overflow: hidden;
}

.hpg-promo-modal[hidden] {
	display: none !important;
}

.hpg-promo-modal,
.hpg-player-modal {
	position: fixed;
	z-index: 100000;
	inset: 0;
	display: grid;
	padding: 22px;
	place-items: center;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.hpg-promo-modal-backdrop,
.hpg-player-modal-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(25, 20, 29, 0.72);
	backdrop-filter: blur(5px);
}

.hpg-player-modal[hidden] {
	display: none !important;
}

.hpg-player-modal {
	padding: 12px;
}

.hpg-player-modal-dialog {
	position: relative;
	display: flex;
	flex-direction: column;
	width: min(1100px, 100%);
	height: min(94vh, 1050px);
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, 0.5);
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 28px 80px rgba(0, 0, 0, 0.4);
}

.hpg-player-modal-head {
	display: flex;
	gap: 20px;
	align-items: flex-start;
	justify-content: space-between;
	padding: 17px 20px 12px;
	background:
		radial-gradient(circle at 100% 0, rgba(156, 123, 185, 0.16), transparent 42%),
		#fff;
}

.hpg-player-modal-head h2 {
	margin: 1px 0 3px !important;
	color: #29242e !important;
	font-size: 1.55rem !important;
	line-height: 1.1 !important;
}

.hpg-player-modal-head p:last-child {
	margin: 0 !important;
	color: #6c6570;
	font-size: 0.82rem;
}

.hpg-player-modal-head .hpg-promo-modal-close {
	position: static;
	flex: 0 0 auto;
}

.hpg-player-modal-switcher {
	display: flex;
	gap: 8px;
	align-items: center;
	padding: 10px 16px;
	border-top: 1px solid #eee9f0;
	border-bottom: 1px solid #ddd6e1;
	background: #f7f4f8;
}

.hpg-player-modal-switcher button,
.hpg-player-modal-switcher a {
	display: inline-flex;
	gap: 7px;
	align-items: center;
	min-height: 37px;
	margin: 0;
	padding: 7px 13px;
	border: 1px solid #d7cedb;
	border-radius: 10px;
	background: #fff;
	color: var(--hpg-purple) !important;
	font: inherit;
	font-size: 0.8rem;
	font-weight: 800;
	text-decoration: none !important;
	cursor: pointer;
}

.hpg-player-modal-switcher button span {
	display: grid;
	width: 21px;
	height: 21px;
	border-radius: 6px;
	background: var(--hpg-purple);
	color: #fff;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.9rem;
	place-items: center;
}

.hpg-player-modal-switcher button[aria-selected="true"] {
	border-color: var(--hpg-purple);
	background: var(--hpg-purple);
	color: #fff !important;
	box-shadow: 0 5px 12px rgba(101, 75, 122, 0.2);
}

.hpg-player-modal-switcher button[aria-selected="true"] span {
	background: #fff;
	color: var(--hpg-purple);
}

.hpg-player-modal-switcher a {
	margin-left: auto;
}

.hpg-player-modal-frame-wrap {
	position: relative;
	flex: 1;
	min-height: 0;
	background: #fff;
}

.hpg-player-modal-frame {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	background: #fff;
}

.hpg-player-modal-foot {
	display: flex;
	gap: 15px;
	align-items: center;
	justify-content: space-between;
	padding: 8px 14px;
	border-top: 1px solid #e2dce5;
	background: #f7f4f8;
	color: #716976;
	font-size: 0.7rem;
}

.hpg-player-modal-foot a {
	flex: 0 0 auto;
	color: var(--hpg-purple) !important;
	font-weight: 800;
	text-decoration: none !important;
}

.hpg-promo-modal-dialog {
	position: relative;
	width: min(760px, 100%);
	max-height: calc(100vh - 44px);
	padding: clamp(22px, 4vw, 38px);
	overflow: auto;
	border: 1px solid rgba(255, 255, 255, 0.5);
	border-radius: 24px;
	background:
		radial-gradient(circle at 100% 0, rgba(156, 123, 185, 0.22), transparent 35%),
		#fff;
	box-shadow: 0 28px 80px rgba(0, 0, 0, 0.35);
}

.hpg-promo-modal-close {
	position: absolute;
	top: 13px;
	right: 13px;
	display: grid;
	width: 38px;
	height: 38px;
	padding: 0;
	border: 1px solid #ddd4e1;
	border-radius: 50%;
	background: #fff;
	color: #3b3340;
	font-size: 1.65rem;
	line-height: 1;
	cursor: pointer;
	place-items: center;
}

.hpg-promo-modal-dialog h2 {
	margin: 2px 46px 8px 0 !important;
	color: #29242e !important;
	font-size: clamp(1.6rem, 4vw, 2.35rem) !important;
	line-height: 1.1 !important;
}

.hpg-promo-modal-intro {
	margin: 0 0 22px !important;
	color: #6c6570;
}

.hpg-promo-modal-games {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.hpg-promo-modal-game {
	display: grid;
	grid-template-columns: 68px minmax(0, 1fr);
	gap: 15px;
	align-items: start;
	padding: 19px;
	border: 2px solid #e4dfe7;
	border-radius: 17px;
	background: #fff;
	color: #29242e !important;
	text-decoration: none !important;
	box-shadow: 0 7px 20px rgba(40, 30, 46, 0.07);
	transition: border-color 150ms ease, transform 150ms ease, box-shadow 150ms ease;
}

.hpg-promo-modal-game:hover,
.hpg-promo-modal-game:focus {
	border-color: var(--hpg-purple);
	color: #29242e !important;
	transform: translateY(-2px);
	box-shadow: 0 12px 26px rgba(40, 30, 46, 0.13);
}

.hpg-promo-modal-icon {
	display: grid;
	width: 68px;
	height: 68px;
	border-radius: 16px;
	background: linear-gradient(145deg, var(--hpg-purple), var(--hpg-purple-light));
	color: #fff;
	place-items: center;
}

.hpg-promo-modal-game--herdle .hpg-promo-modal-icon {
	background: linear-gradient(145deg, #426747, #6b9a70);
}

.hpg-promo-modal-icon b {
	font-family: Georgia, "Times New Roman", serif;
	font-size: 2.7rem;
}

.hpg-promo-modal-icon > span {
	display: grid;
	grid-template-columns: repeat(5, 6px);
	gap: 2px;
}

.hpg-promo-modal-icon i {
	width: 6px;
	height: 21px;
	border-radius: 1px;
	background: #fff;
}

.hpg-promo-modal-icon i:nth-child(even) {
	height: 15px;
	opacity: 0.7;
}

.hpg-promo-modal-copy {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.hpg-promo-modal-copy small {
	color: var(--hpg-purple);
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.hpg-promo-modal-copy strong {
	margin: 1px 0 5px;
	font-size: 1.28rem;
}

.hpg-promo-modal-copy > span {
	color: #6c6570;
	font-size: 0.83rem;
	line-height: 1.4;
}

.hpg-promo-modal-copy em {
	margin-top: 11px;
	color: var(--hpg-purple);
	font-size: 0.78rem;
	font-style: normal;
	font-weight: 800;
}

@media (max-width: 680px) {
	.hpg-promo--banner .hpg-promo-copy {
		display: block;
	}

	.hpg-promo--banner .hpg-promo-copy p {
		margin: 7px 0 13px !important;
	}

	.hpg-promo-modal-games {
		grid-template-columns: 1fr;
	}

	.hpg-player-modal {
		padding: 0;
	}

	.hpg-player-modal-dialog {
		width: 100%;
		height: 100%;
		border: 0;
		border-radius: 0;
	}

	.hpg-player-modal-head {
		padding: 11px 12px 8px;
	}

	.hpg-player-modal-head h2 {
		font-size: 1.2rem !important;
	}

	.hpg-player-modal-head p:last-child {
		display: none;
	}

	.hpg-player-modal-switcher {
		padding: 8px;
	}

	.hpg-player-modal-switcher button,
	.hpg-player-modal-switcher a {
		flex: 1 1 auto;
		justify-content: center;
		padding: 6px 8px;
	}

	.hpg-player-modal-switcher a {
		margin-left: 0;
		font-size: 0;
	}

	.hpg-player-modal-switcher a::after {
		content: "Page ↗";
		font-size: 0.75rem;
	}

	.hpg-player-modal-foot span {
		display: none;
	}

	.hpg-player-modal-foot {
		justify-content: center;
	}
}

@media (max-width: 420px) {
	.hpg-promo {
		align-items: flex-start;
		padding: 16px;
	}

	.hpg-promo-art {
		flex-basis: 62px;
		width: 62px;
		height: 62px;
	}

	.hpg-promo-five {
		inset: 0 13px 13px 0;
		border-radius: 12px;
		font-size: 1.9rem;
	}

	.hpg-promo-word {
		width: 37px;
		height: 28px;
		grid-template-columns: repeat(5, 4px);
		gap: 1px;
		border-width: 2px;
	}

	.hpg-promo-word i {
		width: 4px;
		height: 12px;
	}

	.hpg-promo-title {
		font-size: 1.08rem;
	}

	.hpg-promo-modal {
		padding: 10px;
	}

	.hpg-promo-modal-dialog {
		max-height: calc(100vh - 20px);
		border-radius: 17px;
	}
}

/* Inline widget player: one iframe, switched between games. */
.hpg-inline-player {
	--hpg-inline-line: #ddd6e1;
	--hpg-inline-bg: #ffffff;
	--hpg-inline-bg-soft: #f7f4f8;
	--hpg-inline-control-bg: #ffffff;
	--hpg-inline-text: #29242e;
	--hpg-inline-muted: #68616c;
	--hpg-inline-control-text: #56396a;
	--hpg-inline-selected-bg: #654b7a;
	--hpg-inline-selected-text: #ffffff;
	width: 100%;
	overflow: hidden;
	border: 1px solid var(--hpg-inline-line);
	border-radius: 16px;
	background: var(--hpg-inline-bg);
	color: var(--hpg-inline-text);
	color-scheme: light;
	box-shadow: 0 9px 25px rgba(42, 31, 49, 0.11);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.hpg-inline-player *,
.hpg-inline-player *::before,
.hpg-inline-player *::after {
	box-sizing: border-box;
}

.hpg-inline-player-head {
	display: flex;
	gap: 10px;
	align-items: center;
	justify-content: space-between;
	padding: 13px 14px 10px;
	background:
		radial-gradient(circle at 100% 0, rgba(156, 123, 185, 0.18), transparent 50%),
		var(--hpg-inline-bg);
}

.hpg-inline-player-head > div {
	min-width: 0;
}

.hpg-inline-player-head strong {
	display: block;
	overflow: hidden;
	color: var(--hpg-inline-text) !important;
	font-size: 1.05rem;
	line-height: 1.2;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.hpg-inline-player-head > a,
.hpg-inline-player-foot a {
	flex: 0 0 auto;
	color: var(--hpg-inline-control-text) !important;
	font-size: 0.7rem;
	font-weight: 800;
	text-decoration: none !important;
}

.hpg-inline-player-tabs {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 7px;
	padding: 8px;
	border-top: 1px solid var(--hpg-inline-line);
	border-bottom: 1px solid var(--hpg-inline-line);
	background: var(--hpg-inline-bg-soft);
}

.hpg-inline-player-tabs button {
	display: flex;
	gap: 6px;
	align-items: center;
	justify-content: center;
	min-width: 0;
	min-height: 36px;
	margin: 0;
	padding: 6px 8px;
	border: 1px solid var(--hpg-inline-line) !important;
	border-radius: 9px;
	background: var(--hpg-inline-control-bg) !important;
	color: var(--hpg-inline-control-text) !important;
	font: inherit;
	font-size: 0.77rem;
	font-weight: 800;
	cursor: pointer;
}

.hpg-inline-player-tabs button span {
	display: grid;
	width: 20px;
	height: 20px;
	border-radius: 6px;
	background: var(--hpg-inline-selected-bg);
	color: var(--hpg-inline-selected-text);
	font-family: Georgia, "Times New Roman", serif;
	place-items: center;
}

.hpg-inline-player-tabs button[aria-selected="true"] {
	border-color: var(--hpg-inline-selected-bg) !important;
	background: var(--hpg-inline-selected-bg) !important;
	color: var(--hpg-inline-selected-text) !important;
}

.hpg-inline-player-tabs button[aria-selected="true"] span {
	background: var(--hpg-inline-selected-text);
	color: var(--hpg-inline-selected-bg);
}

.hpg-inline-player-tabs button:hover,
.hpg-inline-player-tabs button:focus-visible {
	border-color: var(--hpg-inline-selected-bg) !important;
	background: #eee7f2 !important;
	color: #3f2850 !important;
}

.hpg-inline-player-tabs button[aria-selected="true"]:hover,
.hpg-inline-player-tabs button[aria-selected="true"]:focus-visible {
	background: #493456 !important;
	color: #ffffff !important;
}

.hpg-inline-player-frame-wrap {
	position: relative;
	height: var(--hpg-inline-height, 760px);
	background: var(--hpg-inline-bg);
}

.hpg-inline-player-frame {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	background: var(--hpg-inline-bg);
}

.hpg-inline-player-foot {
	padding: 8px 12px;
	border-top: 1px solid var(--hpg-inline-line);
	background: var(--hpg-inline-bg-soft);
	text-align: right;
}

/*
 * Jannah can apply .dark-skin to the whole page or to an individual widget
 * region such as the footer and slide-out sidebar.
 */
.dark-skin .hpg-inline-player,
.hpg-inline-player.dark-skin {
	--hpg-inline-line: #4b4650;
	--hpg-inline-bg: #232126;
	--hpg-inline-bg-soft: #2d2a31;
	--hpg-inline-control-bg: #38343c;
	--hpg-inline-text: #ffffff;
	--hpg-inline-muted: #d2cbd6;
	--hpg-inline-control-text: #ffffff;
	--hpg-inline-selected-bg: #a877bf;
	--hpg-inline-selected-text: #171419;
	color-scheme: dark;
	box-shadow: 0 9px 25px rgba(0, 0, 0, 0.35);
}

.dark-skin .hpg-inline-player-head {
	background:
		radial-gradient(circle at 100% 0, rgba(184, 130, 207, 0.2), transparent 50%),
		var(--hpg-inline-bg);
}

.dark-skin .hpg-inline-player .hpg-promo-kicker,
.dark-skin .hpg-inline-player-head > a,
.dark-skin .hpg-inline-player-foot a {
	color: #d5a9e7 !important;
}

.dark-skin .hpg-inline-player .hpg-loading {
	background: var(--hpg-inline-bg);
	color: var(--hpg-inline-muted);
}

.dark-skin .hpg-inline-player-tabs button:hover,
.dark-skin .hpg-inline-player-tabs button:focus-visible {
	border-color: #c28bd8 !important;
	background: #48424d !important;
	color: #ffffff !important;
}

.dark-skin .hpg-inline-player-tabs button[aria-selected="true"]:hover,
.dark-skin .hpg-inline-player-tabs button[aria-selected="true"]:focus-visible {
	background: #c08ad6 !important;
	color: #171419 !important;
}

/* Modal switcher contrast in both site modes. */
.hpg-player-modal-dialog {
	--hpg-modal-bg: #ffffff;
	--hpg-modal-soft: #f7f4f8;
	--hpg-modal-line: #d7cedb;
	--hpg-modal-text: #29242e;
	--hpg-modal-muted: #6c6570;
	--hpg-modal-control-bg: #ffffff;
	--hpg-modal-control-text: #56396a;
	--hpg-modal-selected-bg: #654b7a;
	--hpg-modal-selected-text: #ffffff;
	background: var(--hpg-modal-bg);
	color: var(--hpg-modal-text);
	color-scheme: light;
}

.hpg-player-modal-head {
	background:
		radial-gradient(circle at 100% 0, rgba(156, 123, 185, 0.16), transparent 42%),
		var(--hpg-modal-bg);
}

.hpg-player-modal-head h2 {
	color: var(--hpg-modal-text) !important;
}

.hpg-player-modal-head p:last-child {
	color: var(--hpg-modal-muted) !important;
}

.hpg-player-modal-switcher {
	border-color: var(--hpg-modal-line);
	background: var(--hpg-modal-soft);
}

.hpg-player-modal-switcher button,
.hpg-player-modal-switcher a {
	border-color: var(--hpg-modal-line) !important;
	background: var(--hpg-modal-control-bg) !important;
	color: var(--hpg-modal-control-text) !important;
}

.hpg-player-modal-switcher button[aria-selected="true"] {
	border-color: var(--hpg-modal-selected-bg) !important;
	background: var(--hpg-modal-selected-bg) !important;
	color: var(--hpg-modal-selected-text) !important;
}

.hpg-player-modal-switcher button:hover,
.hpg-player-modal-switcher button:focus-visible,
.hpg-player-modal-switcher a:hover,
.hpg-player-modal-switcher a:focus-visible {
	border-color: #654b7a !important;
	background: #eee7f2 !important;
	color: #3f2850 !important;
}

.hpg-player-modal-switcher button[aria-selected="true"]:hover,
.hpg-player-modal-switcher button[aria-selected="true"]:focus-visible {
	background: #493456 !important;
	color: #ffffff !important;
}

.hpg-player-modal-foot {
	border-color: var(--hpg-modal-line);
	background: var(--hpg-modal-soft);
	color: var(--hpg-modal-muted);
}

html.dark-skin .hpg-player-modal-dialog {
	--hpg-modal-bg: #232126;
	--hpg-modal-soft: #2d2a31;
	--hpg-modal-line: #4b4650;
	--hpg-modal-text: #ffffff;
	--hpg-modal-muted: #d2cbd6;
	--hpg-modal-control-bg: #38343c;
	--hpg-modal-control-text: #ffffff;
	--hpg-modal-selected-bg: #a877bf;
	--hpg-modal-selected-text: #171419;
	color-scheme: dark;
}

html.dark-skin .hpg-player-modal-head {
	background:
		radial-gradient(circle at 100% 0, rgba(184, 130, 207, 0.2), transparent 42%),
		var(--hpg-modal-bg);
}

html.dark-skin .hpg-player-modal .hpg-loading {
	background: var(--hpg-modal-bg);
	color: var(--hpg-modal-muted);
}

html.dark-skin .hpg-player-modal .hpg-promo-modal-close {
	border-color: var(--hpg-modal-line);
	background: var(--hpg-modal-control-bg);
	color: var(--hpg-modal-text);
}

html.dark-skin .hpg-player-modal-switcher button:hover,
html.dark-skin .hpg-player-modal-switcher button:focus-visible,
html.dark-skin .hpg-player-modal-switcher a:hover,
html.dark-skin .hpg-player-modal-switcher a:focus-visible {
	border-color: #c28bd8 !important;
	background: #48424d !important;
	color: #ffffff !important;
}

html.dark-skin .hpg-player-modal-switcher button[aria-selected="true"]:hover,
html.dark-skin .hpg-player-modal-switcher button[aria-selected="true"]:focus-visible {
	background: #c08ad6 !important;
	color: #171419 !important;
}

html.dark-skin .hpg-player-modal-foot a {
	color: #d5a9e7 !important;
}

/*
 * Complete theme palettes
 *
 * Jannah may put .dark-skin on <html> or on an individual widget region.
 * These overrides cover the main launcher, every promo style, and the chooser
 * modal. Iframe documents retain the palette provided by each game itself.
 */

/* Main [hoofprint_games] launcher — explicit light palette. */
.hpg-launcher {
	color-scheme: light;
}

.hpg-launcher .hpg-game-card {
	border-color: var(--hpg-line) !important;
	background: var(--hpg-surface) !important;
	color: var(--hpg-ink) !important;
}

.hpg-launcher .hpg-game-copy strong,
.hpg-launcher .hpg-player-heading {
	color: var(--hpg-ink) !important;
}

.hpg-launcher .hpg-game-eyebrow,
.hpg-launcher .hpg-play-label,
.hpg-launcher .hpg-about h3 {
	color: #56396a !important;
}

.hpg-launcher .hpg-tool-button {
	border-color: #d7d0da !important;
	background: #ffffff !important;
	color: #56396a !important;
}

.hpg-launcher .hpg-tool-button:hover,
.hpg-launcher .hpg-tool-button:focus-visible {
	border-color: #654b7a !important;
	background: #eee7f2 !important;
	color: #3f2850 !important;
}

.hpg-launcher .hpg-site-link {
	border-color: #654b7a !important;
	background: #654b7a !important;
	color: #ffffff !important;
}

.hpg-launcher .hpg-site-link:hover,
.hpg-launcher .hpg-site-link:focus-visible {
	background: #493456 !important;
	color: #ffffff !important;
}

/* Main launcher when the page or containing region is dark. */
.dark-skin .hpg-launcher,
.hpg-launcher.dark-skin {
	--hpg-ink: #ffffff;
	--hpg-muted: #d3ccd7;
	--hpg-line: #4b4650;
	--hpg-surface: #252329;
	--hpg-soft: #302d34;
	color-scheme: dark;
}

.dark-skin .hpg-launcher .hpg-game-card {
	border-color: #4b4650 !important;
	background: #252329 !important;
	color: #ffffff !important;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.28);
}

.dark-skin .hpg-launcher .hpg-game-card:hover,
.dark-skin .hpg-launcher .hpg-game-card:focus-visible {
	border-color: #bd86d4 !important;
	background: #2d2931 !important;
	box-shadow: 0 13px 30px rgba(0, 0, 0, 0.4);
}

.dark-skin .hpg-launcher .hpg-game-card[aria-selected="true"] {
	border-color: #bd86d4 !important;
}

.dark-skin .hpg-launcher .hpg-game-card[aria-selected="true"]::after {
	background: #a877bf;
	color: #171419;
}

.dark-skin .hpg-launcher .hpg-game-copy strong,
.dark-skin .hpg-launcher .hpg-player-heading {
	color: #ffffff !important;
}

.dark-skin .hpg-launcher .hpg-game-copy > span:last-child,
.dark-skin .hpg-launcher .hpg-about p,
.dark-skin .hpg-launcher .hpg-frame-note {
	color: #d3ccd7 !important;
}

.dark-skin .hpg-launcher .hpg-game-eyebrow,
.dark-skin .hpg-launcher .hpg-play-label,
.dark-skin .hpg-launcher .hpg-about h3 {
	color: #d5a9e7 !important;
}

.dark-skin .hpg-launcher .hpg-player {
	border-color: #4b4650;
	background: #252329;
	box-shadow: 0 14px 38px rgba(0, 0, 0, 0.38);
}

.dark-skin .hpg-launcher .hpg-player-bar,
.dark-skin .hpg-launcher .hpg-frame-note,
.dark-skin .hpg-launcher .hpg-about > div {
	border-color: #4b4650;
	background: #302d34;
}

.dark-skin .hpg-launcher .hpg-tool-button {
	border-color: #57515c !important;
	background: #3a363e !important;
	color: #ffffff !important;
}

.dark-skin .hpg-launcher .hpg-tool-button:hover,
.dark-skin .hpg-launcher .hpg-tool-button:focus-visible {
	border-color: #c28bd8 !important;
	background: #4a4450 !important;
	color: #ffffff !important;
}

.dark-skin .hpg-launcher .hpg-site-link {
	border-color: #a877bf !important;
	background: #a877bf !important;
	color: #171419 !important;
}

.dark-skin .hpg-launcher .hpg-site-link:hover,
.dark-skin .hpg-launcher .hpg-site-link:focus-visible {
	background: #c08ad6 !important;
	color: #171419 !important;
}

.dark-skin .hpg-launcher .hpg-loading {
	background: #252329;
	color: #d3ccd7;
}

.dark-skin .hpg-launcher .hpg-spinner {
	border-color: #57515c;
	border-top-color: #d5a9e7;
}

/*
 * The game applications currently render their own light canvases. Keep the
 * iframe shell white to avoid a dark flash followed by a white game surface.
 */
.dark-skin .hpg-launcher .hpg-frame-shell,
.dark-skin .hpg-launcher .hpg-frame {
	background: #ffffff;
}

/* Promo cards and widgets — explicit light palette. */
.hpg-promo:not(.hpg-promo--banner) {
	--hpg-promo-ink: #27232b;
	border-color: #d9cedf;
	background:
		radial-gradient(circle at 100% 0, rgba(156, 123, 185, 0.2), transparent 42%),
		linear-gradient(145deg, #ffffff, #f7f3f8);
	color: #27232b !important;
	color-scheme: light;
}

.hpg-promo:not(.hpg-promo--banner) .hpg-promo-title {
	color: #27232b !important;
}

.hpg-promo:not(.hpg-promo--banner) .hpg-promo-copy p {
	color: #615a65 !important;
}

.hpg-promo:not(.hpg-promo--banner) .hpg-promo-kicker {
	color: #56396a !important;
}

.hpg-promo .hpg-promo-button {
	border: 1px solid #654b7a !important;
	background: #654b7a !important;
	color: #ffffff !important;
}

.hpg-promo .hpg-promo-button:hover,
.hpg-promo .hpg-promo-button:focus-visible {
	background: #493456 !important;
	color: #ffffff !important;
}

/* Promo widgets inside dark page, footer, or slide-sidebar regions. */
.dark-skin .hpg-promo:not(.hpg-promo--banner) {
	--hpg-promo-ink: #ffffff;
	border-color: #4b4650;
	background:
		radial-gradient(circle at 100% 0, rgba(184, 130, 207, 0.2), transparent 42%),
		linear-gradient(145deg, #2d2a31, #232126);
	color: #ffffff !important;
	color-scheme: dark;
	box-shadow: 0 9px 24px rgba(0, 0, 0, 0.32);
}

.dark-skin .hpg-promo:not(.hpg-promo--banner) .hpg-promo-title {
	color: #ffffff !important;
}

.dark-skin .hpg-promo:not(.hpg-promo--banner) .hpg-promo-copy p {
	color: #d3ccd7 !important;
}

.dark-skin .hpg-promo:not(.hpg-promo--banner) .hpg-promo-kicker {
	color: #d5a9e7 !important;
}

.dark-skin .hpg-promo:not(.hpg-promo--banner) .hpg-promo-button {
	border-color: #a877bf !important;
	background: #a877bf !important;
	color: #171419 !important;
}

.dark-skin .hpg-promo:not(.hpg-promo--banner) .hpg-promo-button:hover,
.dark-skin .hpg-promo:not(.hpg-promo--banner) .hpg-promo-button:focus-visible {
	background: #c08ad6 !important;
	color: #171419 !important;
}

/* Banner is intentionally branded in either mode, with guaranteed contrast. */
.hpg-promo--banner,
.dark-skin .hpg-promo--banner {
	color-scheme: dark;
}

.hpg-promo--banner .hpg-promo-button,
.dark-skin .hpg-promo--banner .hpg-promo-button {
	border-color: #ffffff !important;
	background: #ffffff !important;
	color: #3f2850 !important;
}

.hpg-promo--banner .hpg-promo-button:hover,
.hpg-promo--banner .hpg-promo-button:focus-visible,
.dark-skin .hpg-promo--banner .hpg-promo-button:hover,
.dark-skin .hpg-promo--banner .hpg-promo-button:focus-visible {
	background: #f0e8f4 !important;
	color: #2e1c3b !important;
}

/* Game-choice modal — explicit light palette. */
.hpg-promo-modal-dialog {
	--hpg-choice-bg: #ffffff;
	--hpg-choice-soft: #f7f4f8;
	--hpg-choice-line: #ded5e2;
	--hpg-choice-text: #29242e;
	--hpg-choice-muted: #625b66;
	background:
		radial-gradient(circle at 100% 0, rgba(156, 123, 185, 0.22), transparent 35%),
		var(--hpg-choice-bg);
	color: var(--hpg-choice-text);
	color-scheme: light;
}

.hpg-promo-modal-dialog h2,
.hpg-promo-modal-game,
.hpg-promo-modal-copy strong {
	color: var(--hpg-choice-text) !important;
}

.hpg-promo-modal-intro,
.hpg-promo-modal-copy > span {
	color: var(--hpg-choice-muted) !important;
}

.hpg-promo-modal-game {
	border-color: var(--hpg-choice-line) !important;
	background: var(--hpg-choice-bg) !important;
}

.hpg-promo-modal-close {
	border-color: var(--hpg-choice-line) !important;
	background: var(--hpg-choice-bg) !important;
	color: var(--hpg-choice-text) !important;
}

.hpg-promo-modal-game:hover,
.hpg-promo-modal-game:focus-visible,
.hpg-promo-modal-close:hover,
.hpg-promo-modal-close:focus-visible {
	border-color: #654b7a !important;
	background: #eee7f2 !important;
	color: #3f2850 !important;
}

/* Choice modal is appended to body, so the document class is authoritative. */
html.dark-skin .hpg-promo-modal-dialog {
	--hpg-choice-bg: #252329;
	--hpg-choice-soft: #302d34;
	--hpg-choice-line: #4b4650;
	--hpg-choice-text: #ffffff;
	--hpg-choice-muted: #d3ccd7;
	background:
		radial-gradient(circle at 100% 0, rgba(184, 130, 207, 0.2), transparent 35%),
		var(--hpg-choice-bg);
	color-scheme: dark;
}

html.dark-skin .hpg-promo-modal-dialog .hpg-promo-kicker,
html.dark-skin .hpg-promo-modal-copy small,
html.dark-skin .hpg-promo-modal-copy em {
	color: #d5a9e7 !important;
}

html.dark-skin .hpg-promo-modal-game:hover,
html.dark-skin .hpg-promo-modal-game:focus-visible,
html.dark-skin .hpg-promo-modal-close:hover,
html.dark-skin .hpg-promo-modal-close:focus-visible {
	border-color: #c28bd8 !important;
	background: #3a363e !important;
	color: #ffffff !important;
}

@media (max-width: 420px) {
	.hpg-inline-player {
		border-radius: 12px;
	}

	.hpg-inline-player-head {
		padding: 10px;
	}

	.hpg-inline-player-head strong {
		font-size: 0.95rem;
	}
}
