/* PAMASONS /join microsite */

/*
 * Join lives inside `main.ta-site`, which globally uses cream bg + black text (site.css).
 * Force a dedicated dark canvas here so cream/gold copy never sits on cream,
 * and headings/links never inherit faint gray-on-cream from the theme strip.
 */
main.ta-site.ta-join-pamasons-main {
	max-width: none;
	width: 100%;
	margin-left: 0;
	margin-right: 0;
	padding: clamp(2rem, 5vw, 3.5rem) clamp(1rem, 4vw, 2rem) 4rem;
	box-sizing: border-box;
	background:
		radial-gradient(circle at 12% 0%, rgba(236, 201, 24, 0.14), transparent 38%),
		radial-gradient(circle at 92% 18%, rgba(199, 33, 39, 0.18), transparent 36%),
		#0b0b0b !important;
	color: #fafae1 !important;
}

.ta-join-pamasons-main .ta-join-root {
	max-width: 1120px;
	margin-left: auto;
	margin-right: auto;
}

.ta-join-root {
	--ta-join-red: #c72127;
	--ta-join-gold: #ecc918;
	--ta-join-black: #0b0b0b;
	--ta-join-cream: #fafae1;
	/* Muted lines stay clearly readable on dark (#0b0b0b), not low-contrast gray-on-cream */
	--ta-join-muted-on-dark: #e4e4d4;

	color: var(--ta-join-cream);
	font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* Beat `.ta-site { color:#000 }` / heading inherits */
main.ta-site.ta-join-pamasons-main .ta-join-root .ta-join-title,
main.ta-site.ta-join-pamasons-main .ta-join-root .ta-join-headline {
	color: #fafae1 !important;
}

main.ta-site.ta-join-pamasons-main .ta-join-root .ta-join-hint,
main.ta-site.ta-join-pamasons-main .ta-join-root .ta-join-sub {
	color: var(--ta-join-muted-on-dark) !important;
}

main.ta-site.ta-join-pamasons-main .ta-join-root .ta-join-legal {
	color: #c8c8b2 !important;
}

.ta-join-gate {
	text-align: center;
	max-width: 36rem;
	margin: 0 auto 2.5rem;
}

.ta-join-kicker {
	font-family: Oswald, Inter, sans-serif;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	font-weight: 800;
	font-size: 0.78rem;
	color: var(--ta-join-gold);
	margin: 0 0 0.75rem;
}

.ta-join-title {
	font-family: Cinzel, Georgia, 'Times New Roman', serif;
	font-size: clamp(1.85rem, 4.8vw, 2.65rem);
	line-height: 1.08;
	margin: 0 0 0.75rem;
	font-weight: 800;
	letter-spacing: -0.02em;
}

.ta-join-hint {
	font-size: 1.05rem;
	line-height: 1.5;
	color: var(--ta-join-muted-on-dark);
	margin: 0 0 1.5rem;
}

.ta-join-form {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
	justify-content: center;
	align-items: flex-start;
}

.ta-join-input {
	flex: 1 1 200px;
	max-width: 320px;
	min-height: 52px;
	padding: 0.65rem 1rem;
	border-radius: 8px;
	border: 2px solid rgba(236, 201, 24, 0.55);
	/* Dark field: light typing text — never washed-out cream-on-cream */
	background: #161616;
	color: #fafae1;
	font-size: 1.05rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.ta-join-input::placeholder {
	color: #a6a698;
	text-transform: none;
	letter-spacing: 0;
	font-weight: 600;
}

.ta-join-input:focus {
	outline: 2px solid var(--ta-join-gold);
	outline-offset: 2px;
}

.ta-join-submit {
	min-height: 52px;
	padding: 0 1.35rem;
	border-radius: 8px;
	border: none;
	background: var(--ta-join-gold);
	color: #000;
	font-family: Oswald, Inter, sans-serif;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	cursor: pointer;
	transition: transform 0.18s ease, background 0.18s ease;
}

.ta-join-submit:hover {
	background: #fff2a3;
	transform: translateY(-2px);
}

.ta-join-error {
	flex: 1 1 100%;
	margin: 0.35rem 0 0;
	font-size: 0.92rem;
	font-weight: 700;
	color: #ffc9c9;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.55);
}

.ta-join-root.ta-join-shake .ta-join-form {
	animation: taJoinShake 0.42s ease;
}

@keyframes taJoinShake {
	0%,
	100% {
		transform: translateX(0);
	}
	25% {
		transform: translateX(-8px);
	}
	75% {
		transform: translateX(8px);
	}
}

.ta-join-unlocked {
	max-width: 900px;
	margin: 0 auto;
	text-align: center;
}

.ta-join-unlocked[hidden] {
	display: none !important;
}

.ta-join-tag {
	text-transform: uppercase;
	letter-spacing: 0.14em;
	font-family: Oswald, Inter, sans-serif;
	font-weight: 800;
	font-size: 0.74rem;
	color: var(--ta-join-gold);
	margin: 0 0 0.65rem;
	opacity: 0;
	transform: translateY(12px);
	transition:
		opacity 0.55s ease,
		transform 0.55s ease;
}

.ta-join-root.is-unlocked .ta-join-tag {
	opacity: 1;
	transform: translateY(0);
	transition-delay: 0.05s;
}

.ta-join-headline {
	font-family: Cinzel, Georgia, serif;
	font-size: clamp(2rem, 5vw, 2.85rem);
	margin: 0 0 0.5rem;
	font-weight: 800;
	opacity: 0;
	transform: translateY(14px);
	transition:
		opacity 0.55s ease,
		transform 0.55s ease;
}

.ta-join-root.is-unlocked .ta-join-headline {
	opacity: 1;
	transform: translateY(0);
	transition-delay: 0.18s;
}

.ta-join-sub {
	font-size: 1.08rem;
	color: var(--ta-join-muted-on-dark);
	margin: 0 0 1.15rem;
	opacity: 0;
	transform: translateY(14px);
	transition:
		opacity 0.55s ease,
		transform 0.55s ease;
}

.ta-join-root.is-unlocked .ta-join-sub {
	opacity: 1;
	transform: translateY(0);
	transition-delay: 0.28s;
}

.ta-join-short-embed {
	max-width: min(280px, 100%);
	margin: 0 auto 1.5rem;
	opacity: 0;
	transform: translateY(14px);
	transition:
		opacity 0.55s ease,
		transform 0.55s ease;
}

.ta-join-root.is-unlocked .ta-join-short-embed {
	opacity: 1;
	transform: translateY(0);
	transition-delay: 0.32s;
}

.ta-join-short-aspect {
	position: relative;
	width: 100%;
	aspect-ratio: 9 / 16;
	border-radius: 14px;
	overflow: hidden;
	border: 2px solid rgba(236, 201, 24, 0.55);
	box-shadow: 0 18px 48px rgba(0, 0, 0, 0.45);
	background: #0a0a0a;
}

.ta-join-short-iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}

#ta-join-release {
	scroll-margin-top: 1.5rem;
}

.ta-join-stage {
	position: relative;
	max-width: 420px;
	margin: 0 auto 2rem;
	min-height: 280px;
	perspective: 900px;
}

.ta-join-tile-open {
	display: block;
	width: 100%;
	padding: 0;
	border: none;
	background: transparent;
	font: inherit;
	text-align: inherit;
	cursor: pointer;
	border-radius: 22px;
	outline: none;
	color: inherit;
}

.ta-join-tile-open:focus-visible {
	outline: 2px solid var(--ta-join-gold);
	outline-offset: 4px;
}

.ta-join-release-modal.ta-home-modal-shell {
	z-index: 50010;
}

.ta-join-tile-back {
	position: absolute;
	inset: 14px 12px auto auto;
	width: 86%;
	height: 92%;
	max-height: 520px;
	border-radius: 18px;
	background: linear-gradient(135deg, rgba(199, 33, 39, 0.72), rgba(236, 201, 24, 0.42));
	opacity: 0.65;
	transform: rotate(-5deg);
	z-index: 0;
}

.ta-join-tile {
	position: relative;
	z-index: 1;
	/* Light card body: captions use ink colors below */
	background: linear-gradient(165deg, #fffefb 0%, #faf5ee 55%, #f3eee6 100%);
	border: 2px solid rgba(236, 201, 24, 0.55);
	border-radius: 18px;
	padding: 1rem;
	box-shadow: 0 26px 70px rgba(0, 0, 0, 0.42);
	overflow: hidden;
	transform: rotateX(12deg) rotate(2deg) translateY(28px) scale(0.94);
	opacity: 0;
	transition:
		opacity 0.65s ease,
		transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}

.ta-join-root.is-unlocked .ta-join-tile {
	opacity: 1;
	transform: rotateX(0deg) rotate(1deg) translateY(0) scale(1);
	transition-delay: 0.35s;
}

.ta-join-tile-img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 12px;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	background: #1a1a1a;
}

.ta-join-tile-placeholder {
	min-height: 320px;
	border-radius: 12px;
	background:
		radial-gradient(circle at 30% 20%, rgba(236, 201, 24, 0.35), transparent 42%),
		linear-gradient(145deg, #2a2a2a, #111);
	color: #fafae1;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 1.25rem;
	font-weight: 700;
	font-size: 1rem;
	line-height: 1.45;
}

.ta-join-tile-caption {
	text-align: left;
	margin-top: 1rem;
	color: #0a0a0a;
	display: grid;
	gap: 0.2rem;
}

.ta-join-tile-caption strong {
	font-family: Cinzel, Georgia, serif;
	font-size: 1.25rem;
	color: #050505 !important;
}

.ta-join-tile-caption span {
	font-size: 0.92rem;
	color: #3a3a3a !important;
	font-weight: 600;
}

.ta-join-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	justify-content: center;
	margin-bottom: 1rem;
	opacity: 0;
	transform: translateY(16px);
	transition:
		opacity 0.55s ease,
		transform 0.55s ease;
}

.ta-join-root.is-unlocked .ta-join-actions {
	opacity: 1;
	transform: translateY(0);
	transition-delay: 0.72s;
}

.ta-join-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 54px;
	padding: 0 1.5rem;
	border-radius: 8px;
	text-decoration: none !important;
	font-family: Oswald, Inter, sans-serif;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	transition:
		transform 0.18s ease,
		background 0.18s ease,
		border-color 0.18s ease;
}

.ta-join-btn-primary {
	background: var(--ta-join-gold);
	color: #0a0a0a !important;
	box-shadow: 0 14px 34px rgba(236, 201, 24, 0.22);
}

.ta-join-btn-primary:hover {
	transform: translateY(-2px);
	background: #fff2a3;
}

.ta-join-btn-ghost {
	border: 1px solid rgba(250, 250, 225, 0.38);
	color: #fafae1 !important;
	background: rgba(250, 250, 225, 0.06);
}

/* `.ta-site a { color: #c72127 }` would turn this “ghost” into low-contrast red-on-dark */
main.ta-site.ta-join-pamasons-main .ta-join-btn-ghost:link,
main.ta-site.ta-join-pamasons-main .ta-join-btn-ghost:visited {
	color: #fafae1 !important;
}

main.ta-site.ta-join-pamasons-main .ta-join-btn-primary:link,
main.ta-site.ta-join-pamasons-main .ta-join-btn-primary:visited {
	color: #0a0a0a !important;
}

.ta-join-btn-ghost:hover {
	transform: translateY(-2px);
	border-color: var(--ta-join-gold);
}

.ta-join-legal {
	font-size: 0.82rem;
	line-height: 1.45;
	color: #c8c8b2;
	max-width: 36rem;
	margin: 0 auto;
	opacity: 0;
	transition: opacity 0.45s ease;
}

.ta-join-root.is-unlocked .ta-join-legal {
	opacity: 1;
	transition-delay: 0.85s;
}

.ta-join-root.is-reduced-motion .ta-join-tag,
.ta-join-root.is-reduced-motion .ta-join-headline,
.ta-join-root.is-reduced-motion .ta-join-sub,
.ta-join-root.is-reduced-motion .ta-join-short-embed,
.ta-join-root.is-reduced-motion .ta-join-tile,
.ta-join-root.is-reduced-motion .ta-join-actions,
.ta-join-root.is-reduced-motion .ta-join-legal {
	transition: none !important;
	transition-delay: 0s !important;
	opacity: 1 !important;
	transform: none !important;
}

.ta-join-root.is-reduced-motion.ta-join-shake .ta-join-form {
	animation: none !important;
}

@media (max-width: 640px) {
	.ta-join-form {
		flex-direction: column;
		align-items: stretch;
	}

	.ta-join-input {
		max-width: none;
	}

	.ta-join-submit {
		width: 100%;
	}

	.ta-join-actions {
		flex-direction: column;
	}

	.ta-join-btn {
		width: 100%;
	}
}
