/* Game lobby ([gaming_platform_games]): hero and game cards. Builds on the component kit. */

.gaming-platform-lobby {
	max-width: 76rem;
	color: var(--gp-text);
}

/* Hero: dust in the light, mud flecks and a band of tyre tread along the bottom edge. */
.gaming-platform-hero {
	position: relative;
	overflow: hidden;
	margin-bottom: var(--gp-space-7);
	padding: clamp(1.75rem, 6vw, 4rem);
	border: 1px solid var(--gp-border);
	border-radius: var(--gp-radius-lg);
	border-top: 4px solid var(--gp-accent);
	background:
		var(--gp-tread) 0 100% / 100% 12px no-repeat,
		var(--gp-mud),
		radial-gradient(36rem 20rem at 100% 0%, color-mix(in srgb, var(--gp-accent) 26%, transparent), transparent 70%),
		var(--gp-surface-1);
	box-shadow: var(--gp-edge);
}

.gaming-platform-hero > * {
	max-width: 40rem;
}

.gaming-platform-hero__eyebrow {
	margin: 0 0 var(--gp-space-3);
	color: var(--gp-highlight);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.gaming-platform-hero__title {
	margin: 0 0 var(--gp-space-4);
	font-family: var(--gp-font-display);
	font-size: clamp(2.125rem, 6vw, 3.5rem);
	font-style: italic;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1;
	text-transform: uppercase;
	text-wrap: balance;
}

.gaming-platform-hero__lead {
	margin: 0 0 var(--gp-space-5);
	color: var(--gp-text-muted);
	font-size: 1.125rem;
	text-wrap: pretty;
}

.gaming-platform-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.gaming-platform-hero__balance {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	margin: var(--gp-space-5) 0 0;
	color: var(--gp-text-muted);
}

.gaming-platform-hero__balance .gaming-platform-icon,
.gaming-platform-hero__balance strong {
	color: var(--gp-token);
	font-variant-numeric: tabular-nums;
}

.gaming-platform-hero__streak + .gaming-platform-hero__balance {
	margin-top: var(--gp-space-2);
}

.gaming-platform-hero__streak .gaming-platform-icon {
	color: var(--gp-warning);
}

.gaming-platform-hero__streak strong {
	color: var(--gp-text);
}

/* Game cards. */
.gaming-platform-games__title {
	margin: 0 0 var(--gp-space-4);
	font-size: 1.375rem;
}

.gaming-platform-game-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr));
	gap: var(--gp-space-5);
	margin: 0;
	padding: 0;
	list-style: none;
}

.gaming-platform-game-card {
	position: relative;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--gp-border);
	border-radius: var(--gp-radius-lg);
	background: var(--gp-surface-1);
	box-shadow: var(--gp-edge);
	transition: border-color var(--gp-duration) var(--gp-ease), transform var(--gp-duration) var(--gp-ease), box-shadow var(--gp-duration) var(--gp-ease);
}

.gaming-platform-game-card:hover,
.gaming-platform-game-card:focus-within {
	border-color: color-mix(in srgb, var(--gp-accent) 75%, var(--gp-bg));
	box-shadow: var(--gp-edge), var(--gp-shadow-raised), var(--gp-glow);
	transform: translateY(-3px);
}

.gaming-platform-game-card__cover {
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--gp-surface-2);
}

.gaming-platform-game-card__cover img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s var(--gp-ease);
}

.gaming-platform-game-card:hover .gaming-platform-game-card__cover img,
.gaming-platform-game-card:focus-within .gaming-platform-game-card__cover img {
	transform: scale(1.04);
}

.gaming-platform-game-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 0.625rem;
	padding: var(--gp-space-5);
}

.gaming-platform-game-card__name {
	margin: 0;
	font-size: 1.25rem;
}

.gaming-platform-game-card__name a {
	color: var(--gp-text);
	text-decoration: none;
}

/* The name link covers the whole card. */
.gaming-platform-game-card__name a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.gaming-platform-game-card__name a:focus-visible {
	outline: none;
}

.gaming-platform-game-card:has(.gaming-platform-game-card__name a:focus-visible) {
	outline: var(--gp-focus);
	outline-offset: 2px;
}

.gaming-platform-game-card__tagline {
	margin: 0;
	color: var(--gp-text-muted);
}

.gaming-platform-game-card__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.375rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gaming-platform-game-card__action {
	display: flex;
	flex-wrap: wrap;
	gap: 0.625rem;
	margin: auto 0 0;
	padding-top: var(--gp-space-3);
}

/* A real link: it sits above the cover of the name link. */
.gaming-platform-game-card__trial {
	position: relative;
	z-index: 2;
}

/* A single game is featured: cover and text side by side where there is room. */
@media (min-width: 48rem) {
	.gaming-platform-game-grid:has(> :only-child) {
		grid-template-columns: 1fr;
	}

	.gaming-platform-game-grid > :only-child {
		flex-direction: row;
	}

	.gaming-platform-game-grid > :only-child .gaming-platform-game-card__cover {
		flex: 0 0 52%;
	}

	.gaming-platform-game-grid > :only-child .gaming-platform-game-card__body {
		justify-content: center;
		padding: var(--gp-space-6);
	}

	.gaming-platform-game-grid > :only-child .gaming-platform-game-card__name {
		font-size: 1.75rem;
	}

	.gaming-platform-game-grid > :only-child .gaming-platform-game-card__action {
		margin-top: var(--gp-space-3);
	}
}

@media (prefers-reduced-motion: reduce) {
	.gaming-platform-game-card:hover,
	.gaming-platform-game-card:focus-within,
	.gaming-platform-game-card:hover .gaming-platform-game-card__cover img,
	.gaming-platform-game-card:focus-within .gaming-platform-game-card__cover img {
		transform: none;
	}
}
