/* ============================================================
   Ludik — Equipo ("selección de personaje")
   Avatar transparente sobre gradiente de marca; pop-out en hover.
   ============================================================ */

.equipo {
	padding-block: var(--sp-4xl);
	background: var(--c-neutral-50);
}

.equipo__head {
	text-align: center;
	margin-bottom: var(--sp-3xl);
}
.equipo__eyebrow {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--sp-sm);
	font-size: var(--fs-small);
	font-weight: var(--fw-semibold);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--color-text-muted);
	margin-bottom: var(--sp-md);
}
.equipo__badge {
	font-family: var(--font-display);
	font-weight: var(--fw-bold);
	font-size: var(--fs-caption);
	letter-spacing: 0.08em;
	padding: 0.35em 0.8em;
	border-radius: var(--radius-pill);
	color: var(--c-neutral-900);
	background: var(--color-accent-green);
}
.equipo__title {
	font-size: clamp(1.9rem, 4.5vw, 3.25rem);
	letter-spacing: -0.02em;
}
.equipo__note {
	font-family: var(--font-accent);
	font-size: clamp(1.4rem, 3.5vw, 1.9rem);
	font-weight: var(--fw-semibold);
	color: var(--color-accent-pink);
	transform: rotate(-3deg);
	width: fit-content;
	margin: var(--sp-sm) auto 0;
}

/* ---------- Grid ---------- */
.equipo__grid {
	list-style: none;
	margin-block: 0; /* NO usar margin:0 → pisaría el margin-inline:auto de .container */
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--sp-md);
}

/* ---------- Carta de personaje ---------- */
.player { position: relative; }
.player__card {
	position: relative;
	display: block;
	aspect-ratio: 3 / 4;
	border-radius: var(--radius-lg);
	overflow: hidden;
	background: var(--p-grad, var(--gradient-energy));
	box-shadow: var(--shadow-sm);
	transition: transform 0.4s var(--ease-out), box-shadow 0.4s var(--ease-out);
}
/* Variantes de gradiente (paleta de marca) por índice. */
.player--g0 .player__card { --p-grad: linear-gradient(160deg, #4b00ff 0%, #f84dde 100%); }
.player--g1 .player__card { --p-grad: linear-gradient(160deg, #4e40ff 0%, #21ecc8 100%); }
.player--g2 .player__card { --p-grad: linear-gradient(160deg, #f84dde 0%, #4b00ff 100%); }
.player--g3 .player__card { --p-grad: linear-gradient(160deg, #21ecc8 0%, #4e40ff 100%); }

/* Retícula sutil sobre el gradiente (game-UI). */
.player__card::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.08) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.08) 1px, transparent 1px);
	background-size: 26px 26px;
	mask-image: radial-gradient(120% 80% at 50% 0%, #000 30%, transparent 75%);
	-webkit-mask-image: radial-gradient(120% 80% at 50% 0%, #000 30%, transparent 75%);
}

.player__tag {
	position: absolute;
	top: var(--sp-sm);
	left: var(--sp-sm);
	z-index: 2;
	font-family: var(--font-display);
	font-weight: var(--fw-bold);
	font-size: var(--fs-caption);
	letter-spacing: 0.1em;
	color: rgba(255, 255, 255, 0.9);
	padding: 0.25em 0.6em;
	border-radius: var(--radius-pill);
	background: rgba(255, 255, 255, 0.18);
	backdrop-filter: blur(4px);
}

.player__avatar {
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 96%;
	height: 92%;
	object-fit: contain;
	object-position: bottom center;
	transform: translateX(-50%);
	filter: drop-shadow(0 12px 20px rgba(31, 33, 56, 0.25));
	transition: transform 0.45s var(--ease-spring);
	z-index: 1;
}

.player__info {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
	padding: var(--sp-lg) var(--sp-md) var(--sp-md);
	background: linear-gradient(to top, rgba(31, 33, 56, 0.78) 0%, rgba(31, 33, 56, 0.45) 55%, transparent 100%);
	color: var(--color-text-on-dark);
}
.player__name {
	font-size: var(--fs-h4);
	line-height: 1.05;
	color: var(--color-text-on-dark);
}
.player__role {
	font-family: var(--font-accent);
	font-size: var(--fs-body-lg);
	line-height: 1.1;
	color: var(--color-accent-green);
	margin-top: 0.15em;
}

/* Pop-out en hover. */
.player__card:hover {
	transform: translateY(-8px);
	box-shadow: var(--shadow-lg);
}
.player__card:hover .player__avatar {
	transform: translateX(-50%) scale(1.07) translateY(-6px);
}

/* ---------- Responsive ---------- */
@media (min-width: 600px) {
	.equipo__grid { grid-template-columns: repeat(3, 1fr); gap: var(--sp-lg); }
}
@media (min-width: 900px) {
	.equipo__grid { grid-template-columns: repeat(4, 1fr); }
}
@media (min-width: 1200px) {
	.equipo__grid { grid-template-columns: repeat(5, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
	.equipo__note { transform: rotate(-3deg); }
	.player__card:hover .player__avatar { transform: translateX(-50%); }
}
