/* =====================================================================
 * Ignited Academy — misc.css
 * Shared pieces: resource library, certificate verify, auth/login forms,
 * shared form controls, notices/empty states, pills (tag/badge), CTA,
 * buttons, and toast/notification helpers.
 *
 * Brand: premium dark — orange accent, near-black surfaces, off-white text.
 * Every selector is scoped under .ign-academy (wrapper on all Academy content).
 * Variables use fallbacks so styling holds regardless of stylesheet load order.
 * ================================================================== */

/* ---------------------------------------------------------------------
 * Local tokens (mapped from theme vars with safe fallbacks)
 * ------------------------------------------------------------------ */
.ign-academy {
	--ign-x-accent:   var(--ign-accent, #FF4D1A);
	--ign-x-accent-2: var(--ign-accent-2, #ff6a40);
	--ign-x-ink:      var(--ign-bg, #0A0A0B);
	--ign-x-surface:  var(--ign-surface, #131316);
	--ign-x-surface-2: #17171b;
	--ign-x-line:     var(--ign-line, #242428);
	--ign-x-text:     var(--ign-text, #FAFAF7);
	--ign-x-soft:     rgba(250, 250, 247, .72);
	--ign-x-muted:    var(--ign-muted, #8a8a85);

	--ign-x-radius:   14px;
	--ign-x-radius-sm: 10px;
	--ign-x-shadow:   0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .28);
	--ign-x-shadow-h: 0 2px 6px rgba(0, 0, 0, .45), 0 18px 44px rgba(0, 0, 0, .42);

	color: var(--ign-x-text);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

.ign-academy *,
.ign-academy *::before,
.ign-academy *::after {
	box-sizing: border-box;
}

/* ---------------------------------------------------------------------
 * Buttons (shared — reused across all misc pieces)
 * ------------------------------------------------------------------ */
.ign-academy .ign-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5em;
	padding: .7em 1.2em;
	border: 1px solid transparent;
	border-radius: 999px;
	font-size: .95rem;
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: .01em;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color .18s ease, border-color .18s ease,
		color .18s ease, transform .12s ease, box-shadow .18s ease;
}

.ign-academy .ign-btn:active {
	transform: translateY(1px);
}

.ign-academy .ign-btn--primary {
	background: var(--ign-x-accent);
	color: var(--ign-x-ink);
	border-color: var(--ign-x-accent);
	box-shadow: 0 6px 18px rgba(255, 77, 26, .28);
}

.ign-academy .ign-btn--primary:hover,
.ign-academy .ign-btn--primary:focus-visible {
	background: var(--ign-x-accent-2);
	border-color: var(--ign-x-accent-2);
	color: var(--ign-x-ink);
	box-shadow: 0 8px 24px rgba(255, 77, 26, .38);
}

.ign-academy .ign-btn--ghost {
	background: transparent;
	color: var(--ign-x-text);
	border-color: var(--ign-x-line);
}

.ign-academy .ign-btn--ghost:hover,
.ign-academy .ign-btn--ghost:focus-visible {
	border-color: var(--ign-x-accent);
	color: var(--ign-x-accent-2);
	background: rgba(255, 77, 26, .08);
}

.ign-academy .ign-btn--sm {
	padding: .5em .9em;
	font-size: .85rem;
}

.ign-academy .ign-btn--lg {
	padding: .9em 1.6em;
	font-size: 1.05rem;
}

.ign-academy .ign-btn--block {
	display: flex;
	width: 100%;
}

.ign-academy .ign-btn:focus-visible {
	outline: 2px solid var(--ign-x-accent-2);
	outline-offset: 2px;
}

/* ---------------------------------------------------------------------
 * Generic card primitive (used by verify result + player panels)
 * ------------------------------------------------------------------ */
.ign-academy .ign-card {
	background: var(--ign-x-surface);
	border: 1px solid var(--ign-x-line);
	border-radius: var(--ign-x-radius);
	box-shadow: var(--ign-x-shadow);
	padding: 1.4rem;
}

.ign-academy .ign-card__title {
	margin: 0 0 1rem;
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--ign-x-text);
}

/* =====================================================================
 * RESOURCE LIBRARY — .ign-resources-lib
 * ================================================================== */
.ign-academy.ign-resources-lib,
.ign-academy .ign-resources-lib {
	/* Top-of-page view: clear the fixed ~64px theme header. */
	padding: 100px 20px 64px;
	max-width: 1180px;
	margin: 0 auto;
}

.ign-academy .ign-resources-lib__head {
	margin-bottom: 1.6rem;
}

.ign-academy .ign-resources-lib__title {
	margin: 0;
	font-size: clamp(1.6rem, 3.4vw, 2.4rem);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -.01em;
	color: var(--ign-x-text);
}

/* Filters row (e.g. type chips above the grid) */
.ign-academy .ign-resources-lib__filters {
	display: flex;
	flex-wrap: wrap;
	gap: .55rem;
	margin: -.4rem 0 1.6rem;
}

.ign-academy .ign-resources-lib__filter {
	display: inline-flex;
	align-items: center;
	padding: .45em .9em;
	border: 1px solid var(--ign-x-line);
	border-radius: 999px;
	background: var(--ign-x-surface);
	color: var(--ign-x-soft);
	font-size: .85rem;
	font-weight: 600;
	text-decoration: none;
	transition: border-color .18s ease, color .18s ease, background-color .18s ease;
}

.ign-academy .ign-resources-lib__filter:hover,
.ign-academy .ign-resources-lib__filter:focus-visible {
	border-color: var(--ign-x-accent);
	color: var(--ign-x-text);
	background: rgba(255, 77, 26, .08);
}

.ign-academy .ign-resources-lib__filter.is-active {
	border-color: var(--ign-x-accent);
	background: var(--ign-x-accent);
	color: var(--ign-x-ink);
}

/* Grid of resource cards */
.ign-academy .ign-grid--resources {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 1.1rem;
}

/* Single resource card */
.ign-academy .ign-resource-card {
	display: flex;
	flex-direction: column;
	gap: .65rem;
	padding: 1.25rem;
	background: var(--ign-x-surface);
	border: 1px solid var(--ign-x-line);
	border-radius: var(--ign-x-radius);
	box-shadow: var(--ign-x-shadow);
	transition: transform .16s ease, border-color .18s ease, box-shadow .18s ease;
}

.ign-academy .ign-resource-card:hover {
	transform: translateY(-3px);
	border-color: rgba(255, 77, 26, .42);
	box-shadow: var(--ign-x-shadow-h);
}

.ign-academy .ign-resource-card__type {
	align-self: flex-start;
	padding: .25em .65em;
	border-radius: 999px;
	background: rgba(255, 77, 26, .14);
	color: var(--ign-x-accent-2);
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.ign-academy .ign-resource-card__title {
	margin: 0;
	font-size: 1.08rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--ign-x-text);
}

.ign-academy .ign-resource-card__desc {
	margin: 0;
	font-size: .9rem;
	line-height: 1.5;
	color: var(--ign-x-soft);
}

.ign-academy .ign-resource-card .ign-resource-download {
	margin-top: auto;
	align-self: flex-start;
}

/* Compact resource list (lesson player / dashboard panels) */
.ign-academy .ign-resource-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: .15rem;
}

.ign-academy .ign-resource-list__item {
	display: flex;
	align-items: center;
	gap: .75rem;
	padding: .7rem .25rem;
	border-bottom: 1px solid var(--ign-x-line);
}

.ign-academy .ign-resource-list__item:last-child {
	border-bottom: 0;
}

.ign-academy .ign-resource-list__type {
	flex: 0 0 auto;
	padding: .2em .55em;
	border-radius: 6px;
	background: rgba(255, 77, 26, .12);
	color: var(--ign-x-accent-2);
	font-size: .65rem;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
}

.ign-academy .ign-resource-list__title {
	flex: 1 1 auto;
	min-width: 0;
	font-size: .92rem;
	font-weight: 600;
	color: var(--ign-x-text);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.ign-academy .ign-resource-list__dl {
	flex: 0 0 auto;
	font-size: .85rem;
	font-weight: 600;
	color: var(--ign-x-accent-2);
	text-decoration: none;
	white-space: nowrap;
}

.ign-academy .ign-resource-list__dl:hover,
.ign-academy .ign-resource-list__dl:focus-visible {
	color: var(--ign-x-accent);
	text-decoration: underline;
}

.ign-academy .ign-resource-download {
	cursor: pointer;
}

.ign-academy .ign-resource-download:focus-visible {
	outline: 2px solid var(--ign-x-accent-2);
	outline-offset: 2px;
}

/* =====================================================================
 * CERTIFICATE VERIFY — .ign-verify
 * ================================================================== */
.ign-academy.ign-verify,
.ign-academy .ign-verify {
	/* Top-of-page view: clear the fixed ~64px theme header. */
	padding: 100px 20px 64px;
	max-width: 720px;
	margin: 0 auto;
}

.ign-academy .ign-verify__head {
	text-align: center;
	margin-bottom: 1.6rem;
}

.ign-academy .ign-verify__title {
	margin: 0 0 .4rem;
	font-size: clamp(1.6rem, 3.4vw, 2.3rem);
	font-weight: 800;
	letter-spacing: -.01em;
	color: var(--ign-x-text);
}

.ign-academy .ign-verify__sub {
	margin: 0;
	font-size: 1rem;
	color: var(--ign-x-soft);
}

/* Verify search form */
.ign-academy .ign-verify__form {
	display: flex;
	gap: .6rem;
	margin-bottom: 1.6rem;
}

.ign-academy .ign-verify__form .ign-input {
	flex: 1 1 auto;
}

.ign-academy .ign-verify__form .ign-btn {
	flex: 0 0 auto;
}

/* Verified result card */
.ign-academy .ign-verify__result {
	position: relative;
	overflow: hidden;
}

.ign-academy .ign-verify__result::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 4px;
	background: linear-gradient(90deg, var(--ign-x-accent), var(--ign-x-accent-2));
}

.ign-academy .ign-verify__badge {
	display: inline-flex;
	align-items: center;
	gap: .4em;
	margin-bottom: 1.1rem;
	padding: .4em .9em;
	border-radius: 999px;
	background: rgba(46, 204, 113, .16);
	border: 1px solid rgba(46, 204, 113, .4);
	color: #6ee7a6;
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.ign-academy .ign-verify__badge::before {
	content: "\2713"; /* check mark */
	font-size: .95em;
}

.ign-academy .ign-verify__details {
	margin: 0 0 1.4rem;
	display: grid;
	gap: 0;
}

.ign-academy .ign-verify__pair {
	display: grid;
	grid-template-columns: 160px 1fr;
	gap: .5rem 1rem;
	padding: .7rem 0;
	border-bottom: 1px solid var(--ign-x-line);
}

.ign-academy .ign-verify__pair:last-child {
	border-bottom: 0;
}

.ign-academy .ign-verify__pair dt {
	margin: 0;
	font-size: .82rem;
	font-weight: 600;
	letter-spacing: .03em;
	text-transform: uppercase;
	color: var(--ign-x-muted);
}

.ign-academy .ign-verify__pair dd {
	margin: 0;
	font-size: 1rem;
	font-weight: 600;
	color: var(--ign-x-text);
	word-break: break-word;
}

.ign-academy .ign-verify__pair dd code {
	display: inline-block;
	padding: .2em .55em;
	border-radius: 6px;
	background: var(--ign-x-surface-2);
	border: 1px solid var(--ign-x-line);
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: .9em;
	letter-spacing: .08em;
	color: var(--ign-x-accent-2);
}

.ign-academy .ign-verify__actions {
	display: flex;
	flex-wrap: wrap;
	gap: .6rem;
	margin-bottom: 1.2rem;
}

/* Share buttons */
.ign-academy .ign-share {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .6rem;
	padding-top: 1.1rem;
	border-top: 1px solid var(--ign-x-line);
}

.ign-academy .ign-share__label {
	font-size: .85rem;
	font-weight: 600;
	color: var(--ign-x-muted);
}

.ign-academy .ign-share__link {
	display: inline-flex;
	align-items: center;
	padding: .4em .85em;
	border: 1px solid var(--ign-x-line);
	border-radius: 999px;
	background: var(--ign-x-surface-2);
	color: var(--ign-x-soft);
	font-size: .85rem;
	font-weight: 600;
	text-decoration: none;
	transition: border-color .18s ease, color .18s ease, background-color .18s ease;
}

.ign-academy .ign-share__link:hover,
.ign-academy .ign-share__link:focus-visible {
	border-color: var(--ign-x-accent);
	color: var(--ign-x-text);
	background: rgba(255, 77, 26, .1);
}

.ign-academy .ign-share__link:focus-visible {
	outline: 2px solid var(--ign-x-accent-2);
	outline-offset: 2px;
}

/* Star rating display */
.ign-academy .ign-stars {
	display: inline-flex;
	font-size: 1.05rem;
	line-height: 1;
	letter-spacing: .08em;
	color: var(--ign-x-accent);
}

/* =====================================================================
 * SHARED FORM CONTROLS — .ign-form / fields / inputs / checks
 * ================================================================== */
.ign-academy .ign-form {
	display: flex;
	flex-direction: column;
	gap: 1.05rem;
}

.ign-academy .ign-form__field {
	display: flex;
	flex-direction: column;
	gap: .4rem;
}

.ign-academy .ign-form__label {
	font-size: .85rem;
	font-weight: 600;
	letter-spacing: .02em;
	color: var(--ign-x-soft);
}

.ign-academy .ign-form__label small {
	font-weight: 500;
	color: var(--ign-x-muted);
}

/* Inputs + textareas */
.ign-academy .ign-input,
.ign-academy .ign-textarea {
	width: 100%;
	padding: .75em .9em;
	background: var(--ign-x-surface-2);
	border: 1px solid var(--ign-x-line);
	border-radius: var(--ign-x-radius-sm);
	color: var(--ign-x-text);
	font-size: 1rem;
	font-family: inherit;
	line-height: 1.4;
	transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}

.ign-academy .ign-textarea {
	resize: vertical;
	min-height: 96px;
}

.ign-academy .ign-input::placeholder,
.ign-academy .ign-textarea::placeholder {
	color: var(--ign-x-muted);
}

.ign-academy .ign-input:hover,
.ign-academy .ign-textarea:hover {
	border-color: rgba(255, 77, 26, .35);
}

.ign-academy .ign-input:focus,
.ign-academy .ign-textarea:focus,
.ign-academy .ign-input:focus-visible,
.ign-academy .ign-textarea:focus-visible {
	outline: none;
	border-color: var(--ign-x-accent);
	background: var(--ign-x-surface);
	box-shadow: 0 0 0 3px rgba(255, 77, 26, .22);
}

/* File input flavour */
.ign-academy .ign-input[type="file"] {
	padding: .55em .6em;
	cursor: pointer;
}

.ign-academy .ign-input[type="file"]::-webkit-file-upload-button,
.ign-academy .ign-input[type="file"]::file-selector-button {
	margin-right: .8em;
	padding: .5em .9em;
	border: 1px solid var(--ign-x-line);
	border-radius: 999px;
	background: var(--ign-x-surface);
	color: var(--ign-x-text);
	font-weight: 600;
	font-size: .85rem;
	cursor: pointer;
	transition: border-color .18s ease, color .18s ease;
}

.ign-academy .ign-input[type="file"]::file-selector-button:hover {
	border-color: var(--ign-x-accent);
	color: var(--ign-x-accent-2);
}

/* Checkbox / radio rows (form__check and generic check) */
.ign-academy .ign-form__check,
.ign-academy .ign-check {
	display: flex;
	align-items: flex-start;
	gap: .6rem;
	font-size: .92rem;
	line-height: 1.4;
	color: var(--ign-x-soft);
	cursor: pointer;
}

.ign-academy .ign-form__check input[type="checkbox"],
.ign-academy .ign-form__check input[type="radio"],
.ign-academy .ign-check input[type="checkbox"],
.ign-academy .ign-check input[type="radio"] {
	flex: 0 0 auto;
	width: 1.1em;
	height: 1.1em;
	margin-top: .12em;
	accent-color: var(--ign-x-accent);
	cursor: pointer;
}

.ign-academy .ign-form__check:hover,
.ign-academy .ign-check:hover {
	color: var(--ign-x-text);
}

.ign-academy .ign-form input:focus-visible,
.ign-academy .ign-form textarea:focus-visible,
.ign-academy .ign-form__check input:focus-visible,
.ign-academy .ign-check input:focus-visible {
	outline: 2px solid var(--ign-x-accent-2);
	outline-offset: 2px;
}

/* Honeypot — must be visually hidden but kept in DOM */
.ign-academy .ign-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* Assignment submission form */
.ign-academy .ign-assign-form .ign-btn {
	align-self: flex-start;
}

.ign-academy .ign-assign-form__msg {
	margin: 0;
	font-size: .9rem;
	font-weight: 600;
	min-height: 1.2em;
	color: var(--ign-x-soft);
}

.ign-academy .ign-assign-form__msg.is-success {
	color: #6ee7a6;
}

.ign-academy .ign-assign-form__msg.is-error {
	color: #ff8a6a;
}

/* =====================================================================
 * AUTH (login / register / gate / logged-in notice) — .ign-auth
 * ================================================================== */
.ign-academy.ign-auth,
.ign-academy .ign-auth {
	/* Top-of-page view: clear the fixed ~64px theme header. */
	padding: 100px 20px 64px;
	display: flex;
	justify-content: center;
}

.ign-academy .ign-auth__card {
	width: 100%;
	max-width: 440px;
	padding: 2rem;
	background: var(--ign-x-surface);
	border: 1px solid var(--ign-x-line);
	border-radius: var(--ign-x-radius);
	box-shadow: var(--ign-x-shadow);
}

.ign-academy .ign-auth__title {
	margin: 0 0 1.4rem;
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 800;
	letter-spacing: -.01em;
	text-align: center;
	color: var(--ign-x-text);
}

.ign-academy .ign-auth__msg {
	margin: 0 0 1.4rem;
	font-size: 1rem;
	line-height: 1.55;
	text-align: center;
	color: var(--ign-x-soft);
}

.ign-academy .ign-auth__links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .75rem 1.25rem;
	margin-top: 1.4rem;
	padding-top: 1.4rem;
	border-top: 1px solid var(--ign-x-line);
}

.ign-academy .ign-auth__links a {
	color: var(--ign-x-soft);
	font-size: .9rem;
	font-weight: 600;
	text-decoration: none;
	transition: color .16s ease;
}

.ign-academy .ign-auth__links a:hover,
.ign-academy .ign-auth__links a:focus-visible {
	color: var(--ign-x-accent-2);
}

/* Gate variant centres its action buttons */
.ign-academy .ign-auth--gate .ign-auth__links {
	border-top: 0;
	padding-top: 0;
}

.ign-academy .ign-auth--gate .ign-auth__links .ign-btn {
	flex: 0 0 auto;
}

/* =====================================================================
 * NOTICES + EMPTY STATES — .ign-notice / .ign-empty
 * ================================================================== */
.ign-academy .ign-notice {
	display: flex;
	flex-direction: column;
	gap: .15rem;
	margin: 0 0 1.2rem;
	padding: .85rem 1rem;
	border: 1px solid var(--ign-x-line);
	border-left-width: 3px;
	border-radius: var(--ign-x-radius-sm);
	background: var(--ign-x-surface-2);
	color: var(--ign-x-text);
	font-size: .92rem;
	line-height: 1.5;
}

.ign-academy .ign-notice strong {
	font-weight: 700;
}

.ign-academy .ign-notice span {
	color: var(--ign-x-soft);
}

.ign-academy .ign-notice a {
	color: var(--ign-x-accent-2);
	font-weight: 600;
}

.ign-academy .ign-notice a:hover,
.ign-academy .ign-notice a:focus-visible {
	color: var(--ign-x-accent);
}

.ign-academy .ign-notice--info {
	border-left-color: var(--ign-x-accent);
	background: rgba(255, 77, 26, .08);
}

.ign-academy .ign-notice--success {
	border-left-color: #2ecc71;
	background: rgba(46, 204, 113, .1);
	color: #d6f7e3;
}

.ign-academy .ign-notice--success strong {
	color: #6ee7a6;
}

.ign-academy .ign-notice--warning {
	border-left-color: #f1c40f;
	background: rgba(241, 196, 15, .1);
	color: #fbeec2;
}

.ign-academy .ign-notice--error {
	border-left-color: #ff5252;
	background: rgba(255, 82, 82, .1);
	color: #ffd6cf;
}

.ign-academy .ign-notice--error strong {
	color: #ff8a6a;
}

/* Empty state */
.ign-academy .ign-empty {
	margin: 1.2rem 0;
	padding: 2.4rem 1.5rem;
	border: 1px dashed var(--ign-x-line);
	border-radius: var(--ign-x-radius);
	background: rgba(255, 255, 255, .015);
	color: var(--ign-x-soft);
	font-size: 1rem;
	line-height: 1.6;
	text-align: center;
}

.ign-academy .ign-empty a {
	color: var(--ign-x-accent-2);
	font-weight: 600;
	text-decoration: none;
}

.ign-academy .ign-empty a:hover,
.ign-academy .ign-empty a:focus-visible {
	color: var(--ign-x-accent);
	text-decoration: underline;
}

/* =====================================================================
 * PILLS — .ign-tag / .ign-badge
 * ================================================================== */
.ign-academy .ign-tag {
	display: inline-flex;
	align-items: center;
	padding: .25em .7em;
	border-radius: 999px;
	background: var(--ign-x-surface-2);
	border: 1px solid var(--ign-x-line);
	color: var(--ign-x-soft);
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	white-space: nowrap;
}

.ign-academy .ign-tag--pending {
	background: rgba(241, 196, 15, .14);
	border-color: rgba(241, 196, 15, .4);
	color: #f5d76e;
}

/* Badge grid + earned badges */
.ign-academy .ign-badge-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
	gap: 1rem;
}

.ign-academy .ign-badge {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .5rem;
	padding: 1.2rem .8rem;
	background: var(--ign-x-surface);
	border: 1px solid var(--ign-x-line);
	border-radius: var(--ign-x-radius);
	box-shadow: var(--ign-x-shadow);
	text-align: center;
	transition: transform .16s ease, border-color .18s ease, box-shadow .18s ease;
}

.ign-academy .ign-badge:hover {
	transform: translateY(-3px);
	border-color: rgba(255, 77, 26, .42);
	box-shadow: var(--ign-x-shadow-h);
}

.ign-academy .ign-badge__icon {
	font-size: 2.2rem;
	line-height: 1;
}

.ign-academy .ign-badge__label {
	font-size: .85rem;
	font-weight: 700;
	color: var(--ign-x-text);
}

/* =====================================================================
 * GENERIC CTA — .ign-cta
 * ================================================================== */
.ign-academy .ign-cta {
	padding: clamp(2.4rem, 6vw, 4rem) 20px;
}

.ign-academy .ign-cta__inner {
	max-width: 720px;
	margin: 0 auto;
	padding: clamp(1.8rem, 4vw, 2.8rem);
	background: var(--ign-x-surface);
	border: 1px solid var(--ign-x-line);
	border-radius: var(--ign-x-radius);
	box-shadow: var(--ign-x-shadow);
	text-align: center;
}

.ign-academy .ign-cta--dark .ign-cta__inner {
	background:
		radial-gradient(120% 140% at 50% -20%, rgba(255, 77, 26, .14), transparent 60%),
		var(--ign-x-ink);
	border-color: rgba(255, 77, 26, .25);
}

.ign-academy .ign-cta__title {
	margin: 0 0 .6rem;
	font-size: clamp(1.5rem, 3.4vw, 2.2rem);
	font-weight: 800;
	letter-spacing: -.01em;
	color: var(--ign-x-text);
}

.ign-academy .ign-cta__sub {
	margin: 0 auto 1.6rem;
	max-width: 48ch;
	font-size: 1.05rem;
	line-height: 1.6;
	color: var(--ign-x-soft);
}

.ign-academy .ign-cta__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .8rem;
}

/* =====================================================================
 * TOAST / NOTIFICATION (defensive — for JS-injected transient alerts)
 * ================================================================== */
.ign-academy .ign-toast,
.ign-academy .ign-notif {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 9999;
	max-width: 360px;
	padding: .9rem 1.1rem;
	background: var(--ign-x-surface);
	border: 1px solid var(--ign-x-line);
	border-left: 3px solid var(--ign-x-accent);
	border-radius: var(--ign-x-radius-sm);
	box-shadow: var(--ign-x-shadow-h);
	color: var(--ign-x-text);
	font-size: .92rem;
	line-height: 1.45;
	opacity: 0;
	transform: translateY(12px);
	transition: opacity .22s ease, transform .22s ease;
}

.ign-academy .ign-toast.is-visible,
.ign-academy .ign-notif.is-visible,
.ign-academy .ign-toast.is-show,
.ign-academy .ign-notif.is-show {
	opacity: 1;
	transform: translateY(0);
}

.ign-academy .ign-toast.is-success,
.ign-academy .ign-notif.is-success {
	border-left-color: #2ecc71;
}

.ign-academy .ign-toast.is-error,
.ign-academy .ign-notif.is-error {
	border-left-color: #ff5252;
}

/* =====================================================================
 * RESPONSIVE
 * ================================================================== */
@media (max-width: 920px) {
	.ign-academy .ign-verify__pair {
		grid-template-columns: 130px 1fr;
	}

	.ign-academy .ign-grid--resources {
		grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	}
}

@media (max-width: 600px) {
	.ign-academy.ign-resources-lib,
	.ign-academy .ign-resources-lib,
	.ign-academy.ign-verify,
	.ign-academy .ign-verify,
	.ign-academy.ign-auth,
	.ign-academy .ign-auth {
		padding-top: 88px;
		padding-left: 16px;
		padding-right: 16px;
	}

	.ign-academy .ign-grid--resources {
		grid-template-columns: 1fr;
	}

	.ign-academy .ign-verify__form {
		flex-direction: column;
	}

	.ign-academy .ign-verify__form .ign-btn {
		width: 100%;
	}

	.ign-academy .ign-verify__pair {
		grid-template-columns: 1fr;
		gap: .2rem;
		padding: .6rem 0;
	}

	.ign-academy .ign-verify__actions .ign-btn,
	.ign-academy .ign-cta__actions .ign-btn {
		width: 100%;
	}

	.ign-academy .ign-auth__card {
		padding: 1.5rem 1.25rem;
	}

	.ign-academy .ign-auth__links {
		flex-direction: column;
		align-items: stretch;
		text-align: center;
	}

	.ign-academy .ign-auth--gate .ign-auth__links .ign-btn {
		width: 100%;
	}

	.ign-academy .ign-toast,
	.ign-academy .ign-notif {
		left: 16px;
		right: 16px;
		max-width: none;
	}
}

/* =====================================================================
 * MOTION SAFETY
 * ================================================================== */
@media (prefers-reduced-motion: reduce) {
	.ign-academy .ign-btn,
	.ign-academy .ign-resource-card,
	.ign-academy .ign-badge,
	.ign-academy .ign-toast,
	.ign-academy .ign-notif {
		transition: none;
	}

	.ign-academy .ign-resource-card:hover,
	.ign-academy .ign-badge:hover {
		transform: none;
	}
}
