.thga {
	--thga-ink: #2f2418;
	--thga-muted: #675744;
	--thga-paper: #f8efd8;
	--thga-paper-deep: #ecd8ae;
	--thga-river: #1f6f78;
	--thga-forest: #2f6b45;
	--thga-gold: #b77a1b;
	--thga-danger: #9f3a2e;
	box-sizing: border-box;
	color: var(--thga-ink);
	font-family: Georgia, "Times New Roman", serif;
	margin: 24px auto;
	max-width: 760px;
}

.thga *,
.thga *::before,
.thga *::after {
	box-sizing: inherit;
}

.thga-shell {
	background:
		linear-gradient(135deg, rgba(47, 36, 24, 0.1), rgba(31, 111, 120, 0.08)),
		repeating-linear-gradient(35deg, rgba(103, 87, 68, 0.08) 0, rgba(103, 87, 68, 0.08) 1px, transparent 1px, transparent 16px),
		var(--thga-paper-deep);
	border: 1px solid rgba(47, 36, 24, 0.25);
	border-radius: 8px;
	box-shadow: 0 18px 45px rgba(47, 36, 24, 0.22);
	overflow: hidden;
	position: relative;
}

.thga-banner {
	aspect-ratio: 16 / 7;
	background-position: center;
	background-size: cover;
	border-bottom: 1px solid rgba(47, 36, 24, 0.22);
}

.thga-card {
	padding: clamp(18px, 5vw, 34px);
}

.thga-map-card {
	background:
		radial-gradient(circle at 20% 20%, rgba(183, 122, 27, 0.12), transparent 28%),
		radial-gradient(circle at 85% 35%, rgba(47, 107, 69, 0.12), transparent 24%),
		var(--thga-paper);
}

.thga-compass,
.thga-kicker,
.thga-badge {
	color: var(--thga-river);
	font-family: Arial, sans-serif;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0;
	text-transform: uppercase;
}

.thga h2,
.thga h3 {
	color: var(--thga-ink);
	font-family: Georgia, "Times New Roman", serif;
	line-height: 1.1;
	margin: 8px 0 14px;
}

.thga h2 {
	font-size: clamp(30px, 8vw, 54px);
}

.thga h3 {
	font-size: clamp(24px, 7vw, 38px);
}

.thga p {
	font-size: 17px;
	line-height: 1.55;
	margin: 0 0 14px;
}

.thga-intro {
	color: var(--thga-muted);
}

.thga-promo {
	max-width: 1040px;
}

.thga-promo-hero .thga-promo-media {
	background:
		linear-gradient(135deg, rgba(47, 36, 24, 0.88), rgba(31, 111, 120, 0.5)),
		var(--thga-paper-deep);
	background-position: center;
	background-size: cover;
	border-radius: 8px;
	box-shadow: 0 18px 45px rgba(47, 36, 24, 0.22);
	min-height: clamp(360px, 58vw, 560px);
	overflow: hidden;
	position: relative;
}

.thga-promo-overlay {
	align-content: end;
	color: #fff;
	display: grid;
	min-height: inherit;
	padding: clamp(24px, 7vw, 56px);
}

.thga-promo-overlay .thga-compass,
.thga-promo-overlay h2,
.thga-promo-overlay p {
	color: #fff;
	max-width: 720px;
}

.thga-promo-overlay h2 {
	font-size: clamp(38px, 9vw, 76px);
}

.thga-promo-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 8px 0 18px;
}

.thga-promo-meta span {
	background: rgba(255, 250, 235, 0.86);
	border: 1px solid rgba(47, 36, 24, 0.18);
	border-radius: 999px;
	color: var(--thga-ink);
	font: 800 12px Arial, sans-serif;
	padding: 7px 10px;
	text-transform: uppercase;
}

.thga-promo-button {
	max-width: 260px;
}

.thga-promo-hero {
	max-width: 1120px;
	padding: clamp(14px, 3vw, 28px);
}

.thga-promo-hero .thga-promo-media {
	background:
		radial-gradient(circle at 18% 12%, rgba(214, 167, 52, 0.18), transparent 18%),
		radial-gradient(circle at 82% 22%, rgba(15, 79, 72, 0.52), transparent 22%),
		linear-gradient(180deg, rgba(5, 15, 17, 0.64), rgba(5, 15, 17, 0.94)),
		#091416;
	border: 2px solid rgba(214, 167, 52, 0.7);
	border-radius: 0;
	box-shadow: inset 0 0 0 1px rgba(255, 231, 161, 0.14), 0 30px 70px rgba(0, 0, 0, 0.44);
	min-height: clamp(560px, 76vw, 780px);
	overflow: hidden;
}

.thga-promo-hero .thga-promo-media::before,
.thga-promo-hero .thga-promo-media::after {
	content: "";
	pointer-events: none;
	position: absolute;
}

.thga-promo-hero .thga-promo-media::before {
	background:
		radial-gradient(circle at 13% 18%, transparent 0 72px, rgba(214, 167, 52, 0.2) 73px, transparent 76px),
		linear-gradient(135deg, transparent 0 48%, rgba(214, 167, 52, 0.14) 49% 51%, transparent 52%),
		repeating-linear-gradient(26deg, transparent 0 54px, rgba(214, 167, 52, 0.08) 55px, transparent 58px);
	inset: 0;
	opacity: 0.85;
}

.thga-promo-hero .thga-promo-media::after {
	border: 1px solid rgba(214, 167, 52, 0.28);
	inset: 14px;
}

.thga-promo-hero .thga-promo-overlay {
	align-content: center;
	justify-items: center;
	min-height: inherit;
	padding: clamp(28px, 6vw, 70px);
	position: relative;
	text-align: center;
	z-index: 1;
}

.thga-promo-logo {
	display: block;
	filter: drop-shadow(0 16px 22px rgba(0, 0, 0, 0.5));
	height: auto;
	margin: 0 auto clamp(10px, 2vw, 20px);
	max-width: min(470px, 82vw);
	width: 100%;
}

.thga-promo-hero .thga-compass {
	color: #9fc3b2;
	font: 800 clamp(15px, 2.4vw, 24px) Georgia, "Times New Roman", serif;
	letter-spacing: 0.22em;
	margin: 0 0 12px;
	position: relative;
	text-transform: uppercase;
}

.thga-promo-hero .thga-compass::before,
.thga-promo-hero .thga-compass::after {
	color: #d6a734;
	content: "*";
	margin: 0 12px;
}

.thga-promo-hero .thga-promo-overlay h2 {
	color: #ffe7a1;
	font-size: clamp(42px, 8vw, 86px);
	letter-spacing: 0.04em;
	line-height: 1.02;
	margin: 0 auto 14px;
	max-width: 960px;
	text-shadow: 0 4px 0 #5f3812, 0 12px 24px rgba(0, 0, 0, 0.5);
	text-transform: uppercase;
}

.thga-promo-hero .thga-promo-overlay p {
	color: #fff0c9;
	font: 700 clamp(17px, 2.6vw, 24px) Georgia, "Times New Roman", serif;
	line-height: 1.45;
	margin: 0 auto 20px;
	max-width: 760px;
}

.thga-promo-hero .thga-promo-meta {
	justify-content: center;
	margin: 8px 0 24px;
}

.thga-promo-hero .thga-promo-meta span {
	background: rgba(9, 31, 30, 0.82);
	border: 1px solid rgba(214, 167, 52, 0.66);
	border-radius: 999px;
	color: #ffe7a1;
	font: 800 13px Georgia, "Times New Roman", serif;
	letter-spacing: 0.08em;
	padding: 9px 13px;
}

.thga-promo-hero .thga-promo-button {
	background: linear-gradient(180deg, #ffe7a1, #d69a2f);
	border: 2px solid #f3ce67;
	border-radius: 8px;
	box-shadow: inset 0 2px 0 rgba(255, 255, 255, 0.5), 0 14px 24px rgba(0, 0, 0, 0.38);
	color: #17130c;
	font: 900 clamp(22px, 4vw, 34px) Georgia, "Times New Roman", serif;
	letter-spacing: 0.06em;
	max-width: min(420px, 100%);
	min-height: 76px;
	text-transform: uppercase;
}

.thga-cta-inner {
	align-items: center;
	display: grid;
	gap: 18px;
	grid-template-columns: 1fr minmax(190px, 240px);
}

.thga-promo-cta h3 {
	margin-top: 4px;
}

.thga-promo-bar .thga-shell {
	box-shadow: 0 10px 26px rgba(47, 36, 24, 0.16);
}

.thga-screen {
	margin-top: 22px;
}

.thga-quest-hud {
	align-items: stretch;
	display: grid;
	gap: 14px;
	grid-template-columns: minmax(92px, 108px) 1fr;
	margin-bottom: 12px;
}

.thga-stop-badge {
	align-items: center;
	background: var(--thga-river);
	border: 1px solid rgba(47, 36, 24, 0.16);
	border-radius: 8px;
	box-shadow: 0 10px 22px rgba(31, 111, 120, 0.22);
	color: #fff;
	display: grid;
	min-height: 104px;
	padding: 12px;
	text-align: center;
}

.thga-stop-badge span,
.thga-stop-badge small {
	font-family: Arial, sans-serif;
	font-size: 12px;
	font-weight: 800;
	text-transform: uppercase;
}

.thga-stop-badge strong {
	font-family: Arial, sans-serif;
	font-size: 42px;
	line-height: 1;
}

.thga-quest-heading {
	background: rgba(255, 250, 235, 0.66);
	border: 1px solid rgba(103, 87, 68, 0.2);
	border-radius: 8px;
	padding: 14px;
}

.thga-quest-heading h3 {
	margin-bottom: 6px;
}

.thga-consent,
.thga-notice,
.thga-hint,
.thga-stats span {
	background: rgba(255, 250, 235, 0.72);
	border: 1px solid rgba(103, 87, 68, 0.24);
	border-radius: 8px;
	padding: 14px;
}

.thga-consent strong,
.thga-notice strong {
	font-family: Arial, sans-serif;
}

.thga-notice {
	margin: 0 0 16px;
}

.thga-notice-success {
	border-color: rgba(47, 107, 69, 0.45);
	color: var(--thga-forest);
}

.thga-notice-warning {
	border-color: rgba(159, 58, 46, 0.38);
	color: var(--thga-danger);
}

.thga-register-form {
	display: grid;
	gap: 14px;
	margin-top: 18px;
}

.thga-test-run {
	align-items: start;
	background: rgba(183, 122, 27, 0.12);
	border: 1px solid rgba(183, 122, 27, 0.34);
	border-radius: 8px;
	display: grid;
	gap: 10px;
	grid-template-columns: auto 1fr;
	padding: 12px;
}

.thga-test-run input {
	margin-top: 3px;
	min-height: 0;
	width: auto;
}

.thga-test-run strong,
.thga-test-run small {
	display: block;
	font-family: Arial, sans-serif;
}

.thga-test-run small {
	color: var(--thga-muted);
	font-size: 12px;
	line-height: 1.4;
	margin-top: 2px;
}

.thga label {
	color: var(--thga-muted);
	display: grid;
	font-family: Arial, sans-serif;
	font-size: 14px;
	font-weight: 700;
	gap: 6px;
}

.thga input {
	background: rgba(255, 255, 255, 0.74);
	border: 1px solid rgba(47, 36, 24, 0.28);
	border-radius: 6px;
	color: var(--thga-ink);
	font: 16px Arial, sans-serif;
	min-height: 46px;
	padding: 10px 12px;
	width: 100%;
}

.thga-button {
	align-items: center;
	border: 0;
	border-radius: 8px;
	cursor: pointer;
	display: inline-flex;
	font: 800 16px Arial, sans-serif;
	justify-content: center;
	min-height: 52px;
	padding: 14px 18px;
	text-decoration: none;
	width: 100%;
}

.thga-button-primary {
	background: var(--thga-river);
	box-shadow: 0 8px 18px rgba(31, 111, 120, 0.22);
	color: #fff;
}

.thga-button-secondary {
	background: rgba(255, 250, 235, 0.88);
	border: 1px solid rgba(47, 36, 24, 0.28);
	color: var(--thga-river);
}

.thga-button:disabled {
	cursor: wait;
	opacity: 0.72;
}

.thga-progress-label {
	color: var(--thga-muted);
	font-family: Arial, sans-serif;
	font-weight: 800;
	margin-bottom: 10px;
}

.thga-progress-track {
	background: rgba(47, 36, 24, 0.12);
	border-radius: 999px;
	height: 10px;
	margin: 12px 0 12px;
	overflow: hidden;
}

.thga-progress-track span {
	background: linear-gradient(90deg, var(--thga-gold), var(--thga-forest));
	display: block;
	height: 100%;
	min-width: 8px;
}

.thga-progress-markers {
	display: grid;
	gap: 8px;
	grid-template-columns: repeat(auto-fit, minmax(34px, 1fr));
	margin: 0 0 18px;
}

.thga-marker {
	align-items: center;
	background: rgba(255, 255, 255, 0.56);
	border: 1px solid rgba(103, 87, 68, 0.28);
	border-radius: 999px;
	display: inline-flex;
	font: 800 14px Arial, sans-serif;
	height: 34px;
	justify-content: center;
	width: 34px;
}

.thga-marker.is-done {
	background: var(--thga-forest);
	color: #fff;
}

.thga-marker.is-current {
	background: var(--thga-gold);
	color: #fff;
}

.thga-stop-image {
	border: 1px solid rgba(47, 36, 24, 0.22);
	border-radius: 8px;
	display: block;
	margin: 0 0 18px;
	max-height: 360px;
	object-fit: cover;
	width: 100%;
}

.thga-clue-panel,
.thga-completion-message {
	background: rgba(255, 250, 235, 0.52);
	border-left: 4px solid var(--thga-gold);
	margin: 16px 0;
	padding: 14px 14px 4px;
}

.thga-clue-panel {
	box-shadow: inset 0 0 0 1px rgba(103, 87, 68, 0.1);
	padding-bottom: 10px;
}

.thga-clue-text {
	margin-top: 12px;
}

.thga-clue-label {
	align-items: center;
	display: flex;
	font-family: Arial, sans-serif;
	gap: 10px;
	justify-content: space-between;
}

.thga-clue-label span {
	background: rgba(183, 122, 27, 0.14);
	border: 1px solid rgba(183, 122, 27, 0.25);
	border-radius: 999px;
	color: var(--thga-gold);
	font-size: 12px;
	font-weight: 800;
	padding: 5px 9px;
	text-transform: uppercase;
}

.thga-clue-label strong {
	color: var(--thga-ink);
	font-size: 15px;
}

.thga-second-clue {
	align-items: center;
	background: rgba(255, 250, 235, 0.72);
	border: 1px dashed rgba(183, 122, 27, 0.65);
	border-radius: 8px;
	display: grid;
	gap: 12px;
	margin: 16px 0;
	padding: 14px;
}

.thga-second-clue strong {
	color: var(--thga-gold);
	display: block;
	font-family: Arial, sans-serif;
	font-size: 14px;
	text-transform: uppercase;
}

.thga-second-clue p {
	color: var(--thga-muted);
	font-family: Arial, sans-serif;
	font-size: 14px;
	margin: 4px 0 0;
}

.thga-second-clue.is-open {
	background: rgba(255, 246, 213, 0.82);
	border-style: solid;
	border-left: 4px solid var(--thga-gold);
}

.thga-second-clue-text {
	margin-top: 10px;
}

.thga-action-panel {
	background: rgba(31, 111, 120, 0.1);
	border: 1px solid rgba(31, 111, 120, 0.22);
	border-radius: 8px;
	margin-top: 18px;
	padding: 14px;
}

.thga-action-panel strong {
	color: var(--thga-river);
	display: block;
	font-family: Arial, sans-serif;
	font-size: 18px;
	margin-bottom: 4px;
}

.thga-action-panel p {
	color: var(--thga-muted);
	font-family: Arial, sans-serif;
	font-size: 14px;
	margin-bottom: 12px;
}

.thga-check-location {
	font-size: 18px;
	min-height: 60px;
}

.thga-check-location span {
	font-size: 24px;
	line-height: 1;
	margin-right: 8px;
}

.thga-hint {
	margin: 16px 0;
}

.thga-hint summary {
	cursor: pointer;
	font-family: Arial, sans-serif;
	font-weight: 800;
}

.thga-muted {
	color: var(--thga-muted);
	font-family: Arial, sans-serif;
	font-size: 14px;
	margin-top: 12px;
}

.thga-stats {
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(4, 1fr);
	margin-top: 18px;
}

.thga-stats strong,
.thga-stats small {
	display: block;
	font-family: Arial, sans-serif;
	text-align: center;
}

.thga-stats strong {
	color: var(--thga-river);
	font-size: 18px;
}

.thga-stats small {
	color: var(--thga-muted);
	font-size: 12px;
	font-weight: 800;
	margin-top: 4px;
	text-transform: uppercase;
}

.thga-loading {
	color: var(--thga-muted);
	font-family: Arial, sans-serif;
	font-weight: 800;
	margin-top: 20px;
}

.thga-leaderboard {
	max-width: 840px;
}

.thga-leaderboard-list {
	display: grid;
	gap: 10px;
	list-style: none;
	margin: 18px 0 0;
	padding: 0;
}

.thga-leaderboard-row {
	align-items: center;
	background: rgba(255, 250, 235, 0.78);
	border: 1px solid rgba(103, 87, 68, 0.22);
	border-radius: 8px;
	display: grid;
	gap: 12px;
	grid-template-columns: 54px 1fr auto;
	padding: 12px;
}

.thga-rank {
	align-items: center;
	background: linear-gradient(135deg, var(--thga-gold), var(--thga-forest));
	border-radius: 999px;
	color: #fff;
	display: inline-flex;
	font: 800 18px Arial, sans-serif;
	height: 42px;
	justify-content: center;
	width: 42px;
}

.thga-player {
	display: grid;
	gap: 4px;
}

.thga-player strong {
	color: var(--thga-ink);
	font: 800 18px Arial, sans-serif;
}

.thga-player small,
.thga-leaderboard-meta {
	color: var(--thga-muted);
	font: 700 13px Arial, sans-serif;
}

.thga-leaderboard-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: flex-end;
}

.thga-leaderboard-meta span {
	background: rgba(255, 255, 255, 0.58);
	border: 1px solid rgba(103, 87, 68, 0.18);
	border-radius: 999px;
	padding: 6px 9px;
	white-space: nowrap;
}

@media (max-width: 520px) {
	.thga {
		margin: 14px auto;
	}

	.thga-card {
		padding: 18px;
	}

	.thga-quest-hud {
		grid-template-columns: 1fr;
	}

	.thga-stop-badge {
		grid-template-columns: auto auto auto;
		justify-content: center;
		min-height: 0;
	}

	.thga-stop-badge strong {
		font-size: 34px;
	}

	.thga-stats {
		grid-template-columns: 1fr;
	}

	.thga-cta-inner {
		grid-template-columns: 1fr;
	}

	.thga-promo-button {
		max-width: none;
	}

	.thga-leaderboard-row {
		grid-template-columns: 46px 1fr;
	}

	.thga-leaderboard-meta {
		grid-column: 1 / -1;
		justify-content: flex-start;
	}
}

@media (max-width: 680px) {
	.thga-promo-hero {
		margin: 0 auto;
		padding: 10px;
	}

	.thga-promo-hero .thga-promo-media {
		min-height: min(820px, 100dvh);
	}

	.thga-promo-hero .thga-promo-overlay {
		padding: 22px 18px;
	}

	.thga-promo-logo {
		max-width: min(330px, 88vw);
	}

	.thga-promo-hero .thga-promo-overlay h2 {
		font-size: clamp(36px, 11vw, 58px);
	}

	.thga-promo-hero .thga-promo-overlay p {
		font-size: 17px;
	}

	.thga-promo-hero .thga-promo-button {
		font-size: 24px;
		min-height: 66px;
	}
}

/* Device behavior: desktop explains, mobile plays full-screen. */
html.thga-game-active,
body.thga-game-active {
	overflow: hidden !important;
	overscroll-behavior: none;
}

@media (min-width: 769px) {
	.thga-game {
		display: grid;
		justify-items: center;
		max-width: none;
		width: min(100%, 960px);
	}

	.thga-game .thga-cover,
	.thga-game .thga-shell,
	.thga-game .thga-exit {
		display: none !important;
	}

	.thga-game .thga-desktop-gate {
		align-items: center;
		display: grid !important;
		min-height: min(720px, 78vh);
		padding: clamp(20px, 4vw, 48px);
		width: min(920px, 100%);
	}

	.thga-desktop-gate > div {
		background:
			radial-gradient(circle at 16% 12%, rgba(214, 167, 52, 0.18), transparent 20%),
			repeating-linear-gradient(28deg, transparent 0 54px, rgba(214, 167, 52, 0.06) 55px, transparent 58px),
			linear-gradient(135deg, rgba(16, 79, 72, 0.96), rgba(7, 25, 26, 0.98));
		border: 2px solid #c58e28;
		box-shadow: inset 0 0 0 1px rgba(255, 231, 161, 0.14), 0 30px 70px rgba(0, 0, 0, 0.34);
		color: #fff0c9;
		padding: clamp(30px, 5vw, 64px);
		text-align: center;
		width: 100%;
	}

	.thga-desktop-gate img {
		display: block;
		filter: drop-shadow(0 12px 18px rgba(0, 0, 0, 0.4));
		height: auto;
		margin: 0 auto 18px;
		max-width: min(360px, 58vw);
		width: 100%;
	}

	.thga-desktop-gate h2 {
		color: #ffe7a1;
		font-size: clamp(38px, 5vw, 68px);
		line-height: 1.02;
		margin: 0 auto 16px;
		max-width: 760px;
		text-shadow: 0 3px 0 #5f3812, 0 10px 24px rgba(0, 0, 0, 0.42);
		text-transform: uppercase;
	}

	.thga-desktop-gate p {
		color: #fff0c9;
		font-size: clamp(18px, 1.6vw, 23px);
		line-height: 1.5;
		margin: 0 auto 24px;
		max-width: 640px;
	}

	.thga-desktop-gate .thga-button {
		margin-inline: auto;
		max-width: 260px;
	}
}

@media (max-width: 768px) {
	.thga-game .thga-desktop-gate {
		display: none !important;
	}

	.thga-game:not(.is-entered) .thga-cover {
		display: grid;
	}

	.thga-game.is-entered {
		background:
			radial-gradient(circle at 18% 12%, rgba(214, 167, 52, 0.18), transparent 18%),
			repeating-linear-gradient(28deg, transparent 0 54px, rgba(214, 167, 52, 0.06) 55px, transparent 58px),
			linear-gradient(180deg, #071112, #0e191a);
		height: 100dvh;
		max-height: 100dvh;
		max-width: none;
		width: 100vw;
	}

	.thga-game.is-entered .thga-shell {
		border-radius: 0;
		box-shadow: none;
		min-height: calc(100dvh - max(8px, env(safe-area-inset-top)) - 18px);
		width: 100%;
	}
}

/* Murphysburg poster-style public theme. */
.thga {
	--thga-ink: #111816;
	--thga-muted: #5e4d32;
	--thga-paper: #f5dfaa;
	--thga-paper-deep: #c9963b;
	--thga-river: #0f4f48;
	--thga-forest: #0d3b35;
	--thga-gold: #d6a734;
	--thga-danger: #a6402e;
	background:
		radial-gradient(circle at 18% 9%, rgba(214, 167, 52, 0.1), transparent 18%),
		radial-gradient(circle at 84% 18%, rgba(35, 116, 105, 0.18), transparent 20%),
		linear-gradient(180deg, #0e191a 0%, #071112 100%);
	border: 1px solid rgba(214, 167, 52, 0.42);
	border-radius: 2px;
	box-shadow: 0 30px 70px rgba(0, 0, 0, 0.48);
	color: #f8e9bd;
	max-width: 980px;
	overflow: hidden;
	padding: clamp(14px, 3vw, 34px);
	position: relative;
}

.thga::before,
.thga::after {
	border: 1px solid rgba(214, 167, 52, 0.22);
	content: "";
	pointer-events: none;
	position: absolute;
}

.thga::before {
	inset: 12px;
}

.thga::after {
	background:
		radial-gradient(circle at 10% 13%, transparent 0 54px, rgba(214, 167, 52, 0.18) 55px, transparent 57px),
		linear-gradient(135deg, transparent 0 48%, rgba(214, 167, 52, 0.14) 49% 51%, transparent 52%),
		repeating-linear-gradient(24deg, transparent 0 48px, rgba(214, 167, 52, 0.08) 49px, transparent 51px);
	inset: 0;
	opacity: 0.65;
}

.thga-shell {
	background:
		radial-gradient(circle at 17% 10%, rgba(214, 167, 52, 0.08), transparent 17%),
		radial-gradient(circle at 86% 24%, rgba(214, 167, 52, 0.06), transparent 18%),
		linear-gradient(180deg, rgba(10, 28, 29, 0.96), rgba(7, 17, 18, 0.98));
	border: 0;
	border-radius: 0;
	box-shadow: none;
	overflow: visible;
	position: relative;
	z-index: 1;
}

.thga-banner {
	border: 1px solid rgba(214, 167, 52, 0.5);
	border-radius: 16px;
	box-shadow: 0 16px 34px rgba(0, 0, 0, 0.34);
	margin: 0 auto 22px;
	max-width: 860px;
}

.thga-card {
	padding: clamp(18px, 4vw, 34px);
}

.thga-map-card {
	background: transparent;
}

.thga-brand-lockup {
	display: grid;
	justify-items: center;
	margin: -6px auto 10px;
	text-align: center;
}

.thga-brand-lockup img {
	display: block;
	filter: drop-shadow(0 12px 18px rgba(0, 0, 0, 0.45));
	height: auto;
	max-width: min(420px, 76vw);
	width: 100%;
}

.thga-compass,
.thga-kicker,
.thga-badge {
	color: #e1b649;
	font-size: 12px;
	letter-spacing: 0.08em;
}

.thga-brand-lockup .thga-compass {
	color: #9fc3b2;
	font-size: 14px;
	margin-top: -12px;
}

.thga h2 {
	color: #ffe7a1;
	font-size: clamp(38px, 8vw, 76px);
	letter-spacing: 0.02em;
	margin: 12px auto 8px;
	max-width: 920px;
	min-width: 0;
	overflow-wrap: normal;
	text-align: center;
	text-shadow: 0 3px 0 #5f3812, 0 10px 24px rgba(0, 0, 0, 0.42);
	text-wrap: balance;
	text-transform: uppercase;
	word-break: normal;
}

.thga-fit-text {
	box-sizing: border-box;
	max-width: 100%;
	min-width: 0;
	hyphens: manual;
	overflow-wrap: normal;
	word-break: normal;
}

.thga h3 {
	color: #151515;
	font-size: clamp(30px, 6vw, 46px);
}

.thga-intro {
	color: #9fc3b2;
	font: 800 clamp(16px, 2.8vw, 24px) Georgia, "Times New Roman", serif;
	letter-spacing: 0.12em;
	margin: 0 auto 24px;
	max-width: 760px;
	min-width: 0;
	overflow-wrap: normal;
	text-align: center;
	text-transform: uppercase;
	word-break: normal;
}

.thga-screen {
	margin-top: 20px;
}

.thga-notice,
.thga-consent {
	background:
		linear-gradient(135deg, rgba(16, 79, 72, 0.94), rgba(11, 55, 50, 0.94)),
		#0f4f48;
	border: 2px solid #c58e28;
	border-radius: 10px;
	box-shadow: inset 0 0 0 1px rgba(255, 234, 174, 0.16), 0 12px 24px rgba(0, 0, 0, 0.26);
	color: #fff0c9;
	font-family: Georgia, "Times New Roman", serif;
	padding: clamp(16px, 3vw, 24px);
}

.thga-notice strong,
.thga-consent strong {
	color: #ffe7a1;
	font: 800 clamp(22px, 4vw, 34px) Georgia, "Times New Roman", serif;
}

.thga-notice-success,
.thga-notice-warning {
	color: #fff0c9;
}

.thga-quest-hud {
	background:
		linear-gradient(135deg, rgba(246, 223, 174, 0.98), rgba(224, 190, 116, 0.96)),
		var(--thga-paper);
	border: 2px solid #c58e28;
	border-radius: 12px;
	box-shadow: inset 0 0 0 3px rgba(112, 65, 16, 0.12), 0 15px 30px rgba(0, 0, 0, 0.32);
	gap: 20px;
	margin-bottom: 18px;
	padding: 18px;
	position: relative;
}

.thga-quest-hud::after {
	background:
		radial-gradient(circle at 86% 30%, transparent 0 42px, rgba(112, 65, 16, 0.14) 43px, transparent 45px),
		repeating-linear-gradient(25deg, transparent 0 60px, rgba(112, 65, 16, 0.08) 61px, transparent 64px);
	border-radius: inherit;
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
}

.thga-stop-badge {
	background:
		linear-gradient(180deg, #135a51, #0b352f);
	border: 2px solid #c58e28;
	border-radius: 0 0 16px 16px;
	box-shadow: 0 12px 18px rgba(0, 0, 0, 0.34);
	color: #ffe7a1;
	min-height: 150px;
	position: relative;
	z-index: 1;
}

.thga-stop-badge strong {
	font: 700 58px Georgia, "Times New Roman", serif;
	text-shadow: 0 3px 0 rgba(0, 0, 0, 0.32);
}

.thga-stop-badge span,
.thga-stop-badge small {
	color: #ffe7a1;
	font-family: Georgia, "Times New Roman", serif;
	letter-spacing: 0.14em;
}

.thga-quest-heading {
	background: transparent;
	border: 0;
	padding: 18px 0;
	position: relative;
	z-index: 1;
}

.thga-quest-heading h3 {
	margin: 8px 0;
}

.thga-progress-label {
	color: #0f4f48;
	font-size: clamp(18px, 3vw, 24px);
}

.thga-progress-track {
	background: rgba(15, 25, 22, 0.22);
	border: 1px solid rgba(112, 65, 16, 0.3);
	box-shadow: inset 0 2px 3px rgba(0, 0, 0, 0.16);
	height: 12px;
	margin: 6px 0 10px;
}

.thga-progress-track span {
	background: linear-gradient(90deg, #bb8522, #0f4f48);
}

.thga-progress-markers {
	align-items: center;
	margin-bottom: 24px;
	position: relative;
}

.thga-marker {
	background: #f5dfaa;
	border: 2px solid rgba(93, 62, 23, 0.45);
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.16);
	color: #151515;
	font-family: Georgia, "Times New Roman", serif;
}

.thga-marker.is-current {
	background: #c9952c;
	color: #fff6d3;
}

.thga-marker.is-done {
	background: #0f4f48;
	color: #fff6d3;
}

.thga-clue-panel,
.thga-completion-message {
	background:
		linear-gradient(180deg, rgba(248, 226, 178, 0.97), rgba(232, 195, 122, 0.96)),
		#f5dfaa;
	border: 0;
	border-radius: 12px;
	box-shadow: inset 0 0 0 1px rgba(112, 65, 16, 0.18), 0 14px 28px rgba(0, 0, 0, 0.28);
	color: #151515;
	margin: 22px 0;
	padding: clamp(22px, 4vw, 34px);
	position: relative;
}

.thga-clue-panel::before {
	background: rgba(112, 65, 16, 0.1);
	border-radius: inherit;
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
}

.thga-clue-text {
	font-size: clamp(22px, 4vw, 30px);
	line-height: 1.38;
	position: relative;
	z-index: 1;
}

.thga-clue-label {
	justify-content: flex-start;
	position: relative;
	z-index: 1;
}

.thga-clue-label span {
	background: linear-gradient(180deg, #73500f, #2b210c);
	border: 1px solid #d6a734;
	border-radius: 999px;
	box-shadow: 0 5px 12px rgba(0, 0, 0, 0.28);
	color: #ffe7a1;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 14px;
	letter-spacing: 0.12em;
	padding: 8px 16px;
}

.thga-clue-label strong {
	display: none;
}

.thga-second-clue {
	align-items: center;
	background: linear-gradient(135deg, #0c3e39, #071d1c);
	border: 1px solid rgba(214, 167, 52, 0.6);
	border-radius: 10px;
	box-shadow: 0 12px 22px rgba(0, 0, 0, 0.22);
	color: #fff0c9;
	grid-template-columns: 1fr minmax(220px, 360px);
	padding: 16px;
}

.thga-second-clue strong {
	color: #ffe17e;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 18px;
	letter-spacing: 0.08em;
}

.thga-second-clue p {
	color: #fff0c9;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 16px;
}

.thga-second-clue .thga-button-secondary {
	background: linear-gradient(180deg, #ffe39a, #d79a31);
	border: 2px solid #f6cf69;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.45), 0 8px 18px rgba(0, 0, 0, 0.32);
	color: #1b160e;
	font: 800 20px Georgia, "Times New Roman", serif;
}

.thga-second-clue.is-open {
	background:
		linear-gradient(180deg, rgba(248, 226, 178, 0.97), rgba(232, 195, 122, 0.96)),
		#f5dfaa;
	border: 2px solid #d6a734;
	color: #151515;
}

.thga-hint {
	background: linear-gradient(135deg, rgba(8, 21, 24, 0.95), rgba(10, 30, 32, 0.95));
	border: 2px solid #c58e28;
	border-radius: 10px;
	box-shadow: inset 0 0 0 1px rgba(255, 234, 174, 0.1), 0 10px 20px rgba(0, 0, 0, 0.22);
	color: #fff0c9;
	padding: 18px 22px;
}

.thga-hint summary {
	color: #fff0c9;
	font: 800 clamp(22px, 4vw, 32px) Georgia, "Times New Roman", serif;
}

.thga-action-panel {
	background:
		linear-gradient(135deg, rgba(18, 88, 80, 0.95), rgba(7, 42, 39, 0.95)),
		#0f4f48;
	border: 2px solid #c58e28;
	border-radius: 12px;
	box-shadow: inset 0 0 0 1px rgba(255, 234, 174, 0.14), 0 14px 26px rgba(0, 0, 0, 0.28);
	color: #fff0c9;
	padding: clamp(18px, 4vw, 28px);
}

.thga-action-panel strong {
	color: #fff0c9;
	font: 800 clamp(22px, 4vw, 34px) Georgia, "Times New Roman", serif;
}

.thga-action-panel p,
.thga-muted {
	color: #f6dfaa;
	font-family: Georgia, "Times New Roman", serif;
}

.thga-check-location {
	background:
		linear-gradient(180deg, #ffe7a1, #d69a2f);
	border: 2px solid #f3ce67;
	border-radius: 8px;
	box-shadow: inset 0 2px 0 rgba(255, 255, 255, 0.5), 0 12px 18px rgba(0, 0, 0, 0.34);
	color: #17130c;
	font: 900 clamp(25px, 5vw, 46px) Georgia, "Times New Roman", serif;
	letter-spacing: 0.06em;
	min-height: 82px;
	text-transform: uppercase;
}

.thga-check-location span {
	align-items: center;
	background: #14130e;
	border: 2px solid #d6a734;
	border-radius: 999px;
	color: #ffe7a1;
	display: inline-flex;
	font: 800 13px Arial, sans-serif;
	height: 46px;
	justify-content: center;
	margin-right: 14px;
	width: 46px;
}

.thga-register-form label {
	color: #fff0c9;
}

.thga input {
	background: rgba(255, 239, 196, 0.94);
	border: 2px solid rgba(214, 167, 52, 0.54);
	border-radius: 8px;
	color: #151515;
}

.thga-register-form .thga-button-primary,
.thga-promo-button,
.thga-button-primary {
	background: linear-gradient(180deg, #ffe7a1, #d69a2f);
	border: 2px solid #f3ce67;
	color: #17130c;
	font-family: Georgia, "Times New Roman", serif;
}

.thga-game {
	border-left: 0;
	border-radius: 0;
	border-right: 0;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	max-width: none;
	overflow: hidden;
	padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
	position: relative;
	width: 100vw;
	z-index: 1;
}

.thga-game .thga-shell {
	margin: 0 auto;
	max-width: 520px;
	min-height: 0;
}

.thga-exit {
	align-items: center;
	background: rgba(8, 18, 19, 0.88);
	border: 1px solid rgba(214, 167, 52, 0.72);
	border-radius: 999px;
	box-shadow: 0 8px 18px rgba(0, 0, 0, 0.28);
	color: #ffe7a1;
	display: inline-flex;
	font: 800 12px Arial, sans-serif;
	justify-content: center;
	letter-spacing: 0.08em;
	min-height: 36px;
	padding: 8px 14px;
	position: sticky;
	text-decoration: none;
	text-transform: uppercase;
	top: max(10px, env(safe-area-inset-top));
	z-index: 20;
}

.thga-exit:hover,
.thga-exit:focus {
	background: #ffe7a1;
	color: #17130c;
	outline: none;
}

.thga-desktop-gate {
	display: none;
}

@media (max-width: 620px) {
	.thga {
		padding: 12px;
	}

	.thga::before {
		inset: 7px;
	}

	.thga-brand-lockup img {
		max-width: min(300px, 82vw);
	}

	.thga-quest-hud {
		grid-template-columns: 1fr;
		padding: 14px;
	}

	.thga-stop-badge {
		grid-template-columns: auto auto auto;
		min-height: 0;
	}

	.thga-stop-badge strong {
		font-size: 42px;
	}

	.thga-second-clue {
		grid-template-columns: 1fr;
	}

	.thga-clue-text {
		font-size: 21px;
	}

	.thga-check-location {
		font-size: 26px;
		min-height: 70px;
	}
}

@media (min-width: 769px) {
	.thga-game {
		align-items: center;
		display: grid;
		justify-items: center;
		padding: 28px;
	}

	.thga-game .thga-shell,
	.thga-game .thga-exit {
		display: none;
	}

	.thga-game .thga-desktop-gate {
		align-items: center;
		display: grid;
		min-height: 420px;
		width: min(680px, 100%);
	}

	.thga-desktop-gate > div {
		background:
			linear-gradient(135deg, rgba(16, 79, 72, 0.94), rgba(7, 25, 26, 0.97)),
			#0f4f48;
		border: 2px solid #c58e28;
		border-radius: 16px;
		box-shadow: 0 30px 70px rgba(0, 0, 0, 0.48);
		color: #fff0c9;
		padding: 36px;
		text-align: center;
	}

	.thga-desktop-gate img {
		display: block;
		filter: drop-shadow(0 12px 18px rgba(0, 0, 0, 0.4));
		height: auto;
		margin: 0 auto 12px;
		max-width: 320px;
		width: 80%;
	}

	.thga-desktop-gate h2 {
		color: #ffe7a1;
		font-size: clamp(34px, 5vw, 54px);
		margin-bottom: 14px;
		text-shadow: 0 3px 0 #5f3812, 0 10px 24px rgba(0, 0, 0, 0.42);
	}

	.thga-desktop-gate p {
		color: #fff0c9;
		font-size: 18px;
		margin: 0 auto 22px;
		max-width: 520px;
	}
}

/* Unified Murphysburg styling for every public shortcode surface. */
.thga-promo-cta,
.thga-leaderboard {
	background:
		radial-gradient(circle at 16% 12%, rgba(214, 167, 52, 0.15), transparent 18%),
		radial-gradient(circle at 84% 18%, rgba(15, 79, 72, 0.36), transparent 22%),
		linear-gradient(180deg, #0e191a, #071112);
	border: 2px solid rgba(214, 167, 52, 0.62);
	box-shadow: inset 0 0 0 1px rgba(255, 231, 161, 0.12), 0 26px 54px rgba(0, 0, 0, 0.34);
	padding: clamp(14px, 3vw, 26px);
}

.thga-promo-cta .thga-shell,
.thga-leaderboard .thga-shell {
	background:
		repeating-linear-gradient(28deg, transparent 0 50px, rgba(214, 167, 52, 0.06) 51px, transparent 54px),
		linear-gradient(180deg, rgba(9, 31, 30, 0.96), rgba(6, 19, 20, 0.98));
	border: 1px solid rgba(214, 167, 52, 0.25);
	border-radius: 12px;
	box-shadow: none;
}

.thga-promo-cta .thga-map-card,
.thga-leaderboard .thga-map-card {
	background: transparent;
}

.thga-promo-cta .thga-compass,
.thga-leaderboard .thga-compass {
	color: #9fc3b2;
	letter-spacing: 0.16em;
}

.thga-promo-cta h3,
.thga-leaderboard h2 {
	color: #ffe7a1;
	text-shadow: 0 3px 0 #5f3812, 0 10px 22px rgba(0, 0, 0, 0.42);
	text-transform: uppercase;
}

.thga-promo-cta p,
.thga-leaderboard .thga-intro {
	color: #fff0c9;
}

.thga-promo-cta .thga-promo-meta span,
.thga-leaderboard-meta span {
	background: rgba(9, 31, 30, 0.78);
	border: 1px solid rgba(214, 167, 52, 0.58);
	color: #ffe7a1;
}

.thga-leaderboard-row {
	background:
		linear-gradient(180deg, rgba(248, 226, 178, 0.97), rgba(232, 195, 122, 0.95)),
		#f5dfaa;
	border: 1px solid rgba(214, 167, 52, 0.72);
	box-shadow: 0 10px 18px rgba(0, 0, 0, 0.18);
}

.thga-rank {
	background: linear-gradient(180deg, #ffe7a1, #c9952c);
	border: 2px solid #7b5015;
	color: #17130c;
	font-family: Georgia, "Times New Roman", serif;
}

.thga-player strong {
	color: #17130c;
	font-family: Georgia, "Times New Roman", serif;
}

.thga-player small,
.thga-leaderboard-meta {
	color: #4f3d22;
	font-family: Georgia, "Times New Roman", serif;
}

.thga-leaderboard .thga-shell {
	overflow: hidden;
}

.thga-leaderboard .thga-card {
	padding: clamp(22px, 5vw, 52px);
}

.thga-leaderboard h2 {
	font-size: clamp(42px, 9vw, 104px);
	letter-spacing: 0.03em;
	line-height: 0.95;
	margin: 12px auto 18px;
	max-width: 100%;
	overflow-wrap: normal;
	text-align: center;
	word-break: normal;
}

.thga-leaderboard .thga-compass,
.thga-leaderboard .thga-intro {
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}

.thga-leaderboard .thga-intro {
	font-size: clamp(17px, 3vw, 30px);
	letter-spacing: 0.16em;
	line-height: 1.2;
	max-width: 900px;
}

.thga-leaderboard .thga-notice {
	font-size: clamp(19px, 3.2vw, 34px);
	line-height: 1.35;
	margin: 26px auto 0;
	max-width: 760px;
	padding: clamp(18px, 4vw, 34px);
}

.thga-leaderboard-row {
	grid-template-columns: 54px minmax(0, 1fr) minmax(150px, auto);
}

@media (max-width: 720px) {
	.thga-leaderboard .thga-card {
		padding: 20px 16px;
	}

	.thga-leaderboard h2 {
		font-size: clamp(34px, 13vw, 58px);
		line-height: 1;
	}

	.thga-leaderboard .thga-intro {
		font-size: 16px;
		letter-spacing: 0.1em;
	}

	.thga-leaderboard .thga-notice {
		font-size: 20px;
	}

	.thga-leaderboard-row {
		grid-template-columns: 44px minmax(0, 1fr);
	}

	.thga-leaderboard-meta {
		grid-column: 1 / -1;
		justify-content: flex-start;
	}
}

/* Compact hero refinement for shortcode placement inside normal pages. */
.thga-promo-hero {
	max-width: min(1080px, calc(100vw - 28px));
}

.thga-promo-hero .thga-promo-media {
	border-radius: 10px;
	min-height: auto;
}

.thga-promo-hero .thga-promo-overlay {
	padding: clamp(26px, 5vw, 52px);
}

.thga-promo-logo {
	background: rgba(7, 17, 18, 0.45);
	border: 1px solid rgba(214, 167, 52, 0.24);
	box-shadow: 0 16px 28px rgba(0, 0, 0, 0.28);
	max-width: min(300px, 58vw);
}

.thga-promo-hero .thga-compass {
	font-size: clamp(14px, 2vw, 19px);
	letter-spacing: 0.18em;
	margin-top: 6px;
}

.thga-promo-hero .thga-promo-overlay h2 {
	font-size: clamp(42px, 6.5vw, 74px);
	line-height: 1.04;
	max-width: 780px;
}

.thga-promo-hero .thga-promo-overlay p {
	font-size: clamp(17px, 2.2vw, 22px);
	font-weight: 800;
	margin-bottom: 18px;
	max-width: 620px;
}

.thga-promo-hero .thga-promo-meta {
	gap: 10px;
	margin-bottom: 20px;
}

.thga-promo-hero .thga-promo-button {
	font-size: clamp(22px, 3vw, 30px);
	min-height: 64px;
}

@media (max-width: 680px) {
	.thga-promo-hero {
		max-width: calc(100vw - 18px);
		padding: 8px;
	}

	.thga-promo-hero .thga-promo-media {
		min-height: auto;
	}

	.thga-promo-hero .thga-promo-overlay {
		padding: 26px 16px 30px;
	}

	.thga-promo-logo {
		max-width: min(230px, 68vw);
	}

	.thga-promo-hero .thga-compass {
		font-size: 14px;
		letter-spacing: 0.16em;
	}

	.thga-promo-hero .thga-compass::before,
	.thga-promo-hero .thga-compass::after {
		margin: 0 8px;
	}

	.thga-promo-hero .thga-promo-overlay h2 {
		font-size: clamp(34px, 11vw, 52px);
		line-height: 1.03;
		margin-bottom: 10px;
	}

	.thga-promo-hero .thga-promo-overlay p {
		font-size: 16px;
		line-height: 1.35;
	}

	.thga-promo-hero .thga-promo-meta span {
		font-size: 11px;
		padding: 7px 10px;
	}

	.thga-promo-hero .thga-promo-button {
		font-size: 22px;
		min-height: 62px;
	}
}

/* Public layout contract: keep shortcode surfaces predictable. */
.thga {
	max-width: 100%;
	overflow-wrap: normal;
	width: 100%;
}

.thga,
.thga * {
	min-width: 0;
}

.thga img {
	height: auto;
	max-width: 100%;
}

.thga-shell,
.thga-card,
.thga-map-card,
.thga-promo,
.thga-promo-hero,
.thga-promo-cta,
.thga-leaderboard,
.thga-promo-media,
.thga-promo-overlay,
.thga-cta-inner {
	max-width: none;
	width: 100%;
}

.thga-promo-hero,
.thga-promo-cta,
.thga-leaderboard {
	margin-left: 0;
	margin-right: 0;
	overflow-x: clip;
}

.thga-promo-cta .thga-shell,
.thga-leaderboard .thga-shell {
	width: 100%;
}

.thga-game {
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	max-width: none;
	overflow-x: clip;
	width: 100vw;
}

.thga-game .thga-shell {
	max-width: none;
	width: min(100%, 760px);
}

.thga-promo-hero .thga-promo-overlay h2,
.thga-promo-hero .thga-promo-overlay p,
.thga-leaderboard .thga-intro,
.thga-leaderboard .thga-notice {
	max-width: min(100%, 900px);
}

@media (min-width: 769px) {
	.thga-game .thga-desktop-gate {
		width: min(100%, 760px);
	}
}

/* Full-screen public leaderboard. */
.thga-leaderboard {
	align-items: stretch;
	display: grid;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	max-width: none;
	min-height: 100vh;
	min-height: 100dvh;
	width: 100vw;
}

.thga-leaderboard .thga-shell {
	display: grid;
	min-height: calc(100vh - clamp(28px, 6vw, 68px));
	min-height: calc(100dvh - clamp(28px, 6vw, 68px));
	width: 100%;
}

.thga-leaderboard .thga-map-card {
	align-content: center;
	display: grid;
	min-height: 100%;
}

.thga-leaderboard h2 {
	font-size: clamp(42px, 10vw, 124px);
	line-height: 0.9;
	max-width: min(100%, 1100px);
	overflow-wrap: normal;
	text-wrap: balance;
	word-break: normal;
}

.thga-leaderboard-list {
	margin-left: auto;
	margin-right: auto;
	max-width: 1060px;
	width: 100%;
}

.thga-leaderboard .thga-notice {
	max-width: 900px;
}

.thga-leaderboard-row {
	width: 100%;
}

@media (max-width: 720px) {
	.thga-leaderboard {
		padding: 10px;
	}

	.thga-leaderboard .thga-shell {
		min-height: calc(100vh - 20px);
		min-height: calc(100dvh - 20px);
	}

	.thga-leaderboard .thga-card {
		padding: 22px 16px;
	}

	.thga-leaderboard h2 {
		font-size: clamp(26px, 10vw, 54px);
		line-height: 1;
	}
}

/* Playable hunt cover and immersive entered state. */
.thga-game .thga-cover {
	align-items: center;
	background:
		radial-gradient(circle at 18% 12%, rgba(214, 167, 52, 0.18), transparent 18%),
		radial-gradient(circle at 82% 20%, rgba(15, 79, 72, 0.48), transparent 24%),
		repeating-linear-gradient(28deg, transparent 0 54px, rgba(214, 167, 52, 0.06) 55px, transparent 58px),
		linear-gradient(180deg, #0e191a, #071112);
	border: 2px solid rgba(214, 167, 52, 0.72);
	box-shadow: inset 0 0 0 1px rgba(255, 231, 161, 0.14), 0 26px 54px rgba(0, 0, 0, 0.34);
	color: #ffe7a1;
	cursor: pointer;
	display: grid;
	font-family: Georgia, "Times New Roman", serif;
	justify-items: center;
	margin: 0;
	min-height: clamp(420px, 72vw, 680px);
	padding: clamp(24px, 6vw, 54px);
	text-align: center;
	width: 100%;
}

.thga-cover-inner {
	align-items: center;
	border: 1px solid rgba(214, 167, 52, 0.32);
	display: grid;
	justify-items: center;
	max-width: 760px;
	padding: clamp(22px, 5vw, 48px);
	width: min(100%, 760px);
}

.thga-cover img {
	display: block;
	filter: drop-shadow(0 14px 20px rgba(0, 0, 0, 0.46));
	height: auto;
	margin-bottom: 12px;
	max-width: min(320px, 72vw);
	width: 100%;
}

.thga-cover strong {
	color: #ffe7a1;
	display: block;
	font-size: clamp(38px, 8vw, 78px);
	letter-spacing: 0.04em;
	line-height: 1.02;
	margin: 10px 0 18px;
	max-width: 100%;
	overflow-wrap: normal;
	text-shadow: 0 4px 0 #5f3812, 0 12px 24px rgba(0, 0, 0, 0.5);
	text-wrap: balance;
	text-transform: uppercase;
	word-break: normal;
}

.thga-cover em {
	background: linear-gradient(180deg, #ffe7a1, #d69a2f);
	border: 2px solid #f3ce67;
	border-radius: 999px;
	box-shadow: inset 0 2px 0 rgba(255, 255, 255, 0.5), 0 12px 20px rgba(0, 0, 0, 0.32);
	color: #17130c;
	font: 900 18px Georgia, "Times New Roman", serif;
	letter-spacing: 0.12em;
	padding: 13px 22px;
	text-transform: uppercase;
}

.thga-game:not(.is-entered) .thga-exit,
.thga-game:not(.is-entered) .thga-desktop-gate,
.thga-game:not(.is-entered) .thga-shell {
	display: none;
}

.thga-game.is-entered {
	height: 100dvh;
	inset: 0;
	margin: 0;
	overflow-x: hidden;
	overflow-y: auto;
	padding: max(8px, env(safe-area-inset-top)) 10px 18px;
	position: fixed;
	z-index: 999999;
}

.thga-game.is-entered .thga-cover {
	display: none;
}

.thga-game.is-entered .thga-banner {
	display: none;
}

.thga-game.is-entered .thga-exit {
	font-size: 11px;
	margin: 0;
	min-height: 32px;
	padding: 7px 12px;
	position: fixed;
	right: max(12px, env(safe-area-inset-right));
	top: max(8px, env(safe-area-inset-top));
	z-index: 1000000;
}

.thga-game.is-entered .thga-shell {
	margin: 0 auto;
	min-height: calc(100dvh - 30px);
}

.thga-game.is-entered .thga-card {
	padding-top: 12px;
}

.thga-game.is-entered .thga-brand-lockup {
	margin: 0 auto 6px;
}

.thga-game.is-entered .thga-brand-lockup img {
	max-width: min(230px, 58vw);
}

.thga-game.is-entered .thga-brand-lockup .thga-compass {
	margin-top: -6px;
}

.thga-game.is-entered h2 {
	font-size: clamp(30px, 8vw, 46px);
	line-height: 1;
	margin-top: 8px;
}

.thga-game.is-entered .thga-intro {
	font-size: clamp(13px, 3.4vw, 17px);
	letter-spacing: 0.08em;
	line-height: 1.35;
	margin-bottom: 16px;
}

.thga-game.is-entered.is-on-trail .thga-brand-lockup,
.thga-game.is-entered.is-on-trail > .thga-shell > .thga-card > h2,
.thga-game.is-entered.is-on-trail > .thga-shell > .thga-card > .thga-intro {
	display: none;
}

.thga-game.is-entered.is-on-trail .thga-card {
	padding-top: 0;
}

.thga-game.is-entered.is-on-trail .thga-app {
	padding-top: 40px;
}

.thga-game.is-entered.is-on-trail .thga-screen {
	margin-top: 10px;
}

.thga-game.is-entered.is-on-trail .thga-notice {
	margin: 0 0 12px;
	padding: clamp(14px, 3.6vw, 22px);
}

.thga-game.is-entered.is-on-trail .thga-notice strong {
	font-size: clamp(25px, 8vw, 42px);
	line-height: 1;
}

.thga-game.is-entered.is-on-trail .thga-quest-hud {
	gap: 12px;
	margin-bottom: 12px;
	padding: 12px;
}

.thga-game.is-entered.is-on-trail .thga-stop-badge {
	align-items: center;
	border-radius: 10px;
	display: flex;
	gap: 8px;
	justify-content: center;
	min-height: 72px;
	padding: 10px;
}

.thga-game.is-entered.is-on-trail .thga-stop-badge strong {
	font-size: clamp(42px, 14vw, 64px);
	line-height: 0.9;
}

.thga-game.is-entered.is-on-trail .thga-stop-badge span,
.thga-game.is-entered.is-on-trail .thga-stop-badge small {
	font-size: 15px;
	letter-spacing: 0.12em;
}

.thga-game.is-entered.is-on-trail .thga-quest-heading {
	padding: 8px 0 4px;
}

.thga-game.is-entered.is-on-trail .thga-quest-heading h3 {
	font-size: clamp(30px, 9vw, 48px);
	line-height: 1.05;
	margin: 6px 0;
}

.thga-game.is-entered.is-on-trail .thga-progress-label {
	font-size: clamp(17px, 4.8vw, 24px);
}

.thga-game.is-entered.is-on-trail .thga-progress-track {
	margin: 4px 0 8px;
}

.thga-game.is-entered.is-on-trail .thga-progress-markers {
	display: flex;
	flex-wrap: nowrap;
	gap: 8px;
	justify-content: flex-start;
	margin-bottom: 12px;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	padding: 2px 2px 8px;
	scrollbar-width: thin;
}

.thga-game.is-entered.is-on-trail .thga-marker {
	flex: 0 0 auto;
	font-size: 18px;
	height: 42px;
	width: 42px;
}

.thga-game.is-entered.is-on-trail .thga-clue-panel,
.thga-game.is-entered.is-on-trail .thga-completion-message {
	margin: 12px 0;
	padding: clamp(18px, 4vw, 26px);
}

.thga-game.is-entered.is-on-trail .thga-clue-text {
	font-size: clamp(21px, 5.8vw, 28px);
}

.thga-game.is-entered.is-on-trail .thga-second-clue,
.thga-game.is-entered.is-on-trail .thga-hint,
.thga-game.is-entered.is-on-trail .thga-action-panel {
	margin-top: 12px;
}

.thga-game.is-entered.is-on-trail .thga-action-panel {
	padding: clamp(14px, 4vw, 22px);
}

.thga-game.is-entered.is-on-trail .thga-check-location {
	font-size: clamp(22px, 6vw, 34px);
	min-height: 68px;
}

@media (max-width: 680px) {
	.thga-game .thga-cover {
		min-height: clamp(520px, 92dvh, 820px);
		padding: 18px 12px;
	}

	.thga-cover-inner {
		padding: 22px 14px;
	}

	.thga-cover img {
		max-width: min(260px, 78vw);
	}

	.thga-cover strong {
		font-size: clamp(26px, 10vw, 46px);
	}

	.thga-game.is-entered .thga-shell {
		width: 100%;
	}

	.thga-game.is-entered .thga-brand-lockup img {
		max-width: min(190px, 54vw);
	}

	.thga-game.is-entered h2 {
		font-size: clamp(26px, 9vw, 38px);
	}

	.thga-game.is-entered.is-on-trail {
		padding-left: 8px;
		padding-right: 8px;
	}

	.thga-game.is-entered.is-on-trail .thga-card {
		padding-left: 10px;
		padding-right: 10px;
	}

	.thga-game.is-entered.is-on-trail .thga-app {
		padding-top: 38px;
	}

	.thga-game.is-entered.is-on-trail .thga-notice {
		margin-left: 0;
		margin-right: 0;
	}

	.thga-game.is-entered.is-on-trail .thga-quest-hud {
		padding: 10px;
	}

	.thga-game.is-entered.is-on-trail .thga-stop-badge {
		min-height: 64px;
	}

	.thga-game.is-entered.is-on-trail .thga-stop-badge strong {
		font-size: clamp(38px, 13vw, 56px);
	}

	.thga-game.is-entered.is-on-trail .thga-quest-heading h3 {
		font-size: clamp(28px, 8.5vw, 42px);
	}

	.thga-game.is-entered.is-on-trail .thga-marker {
		font-size: 17px;
		height: 40px;
		width: 40px;
	}
}

/* Accessibility and device-handoff refinements. */
.thga-game.is-entered .thga-intro,
.thga-game.is-entered .thga-intro p {
	color: #fff0c9;
	font-weight: 600;
	letter-spacing: 0.01em;
	text-transform: none;
}

.thga-game.is-entered .thga-consent,
.thga-game.is-entered .thga-consent p {
	color: #fff0c9;
}

@media (max-width: 768px) {
	.thga-game .thga-exit,
	.thga-game.is-entered .thga-exit {
		min-height: 44px;
		min-width: 44px;
	}
}

@media (min-width: 769px) {
	.thga-game,
	.hmp-page .hmp-entry-panel > .thga-game {
		background: transparent;
		border: 0;
		box-shadow: none;
		margin: 0 auto;
		max-width: 1100px;
		overflow: visible;
		padding: clamp(18px, 3vw, 34px);
		width: 100%;
	}

	.thga-game .thga-desktop-gate {
		min-height: 0;
		width: min(100%, 980px);
	}

	.thga-desktop-gate > div {
		align-items: center;
		display: grid;
		column-gap: clamp(24px, 4vw, 52px);
		grid-template-columns: minmax(210px, 300px) minmax(0, 1fr);
		grid-template-rows: auto auto auto;
		padding: clamp(28px, 4vw, 48px);
		row-gap: 18px;
		text-align: left;
	}

	.thga-desktop-gate img {
		align-self: center;
		grid-column: 1;
		grid-row: 1 / span 3;
		margin: 0;
		max-width: 300px;
		width: 100%;
	}

	.thga-desktop-gate h2,
	.thga-desktop-gate p {
		grid-column: 2;
		margin-left: 0;
		margin-right: 0;
		text-align: left;
	}

	.thga-desktop-gate h2 {
		font-size: clamp(34px, 4vw, 58px);
		grid-row: 1;
		margin-bottom: 0;
		align-self: end;
	}

	.thga-desktop-gate p {
		grid-row: 2;
	}

	.thga-desktop-gate .thga-button {
		align-self: start;
		grid-column: 2;
		grid-row: 3;
		justify-self: start;
		margin-inline: 0;
		min-height: 48px;
	}
}

@media (min-width: 769px) and (max-width: 900px) {
	.thga-desktop-gate > div {
		grid-template-columns: 1fr;
		grid-template-rows: auto;
		justify-items: center;
		text-align: center;
	}

	.thga-desktop-gate h2,
	.thga-desktop-gate p,
	.thga-desktop-gate img,
	.thga-desktop-gate .thga-button {
		grid-column: 1;
		grid-row: auto;
		margin-left: auto;
		margin-right: auto;
		text-align: center;
	}

	.thga-desktop-gate .thga-button {
		margin-inline: auto;
	}
}
