:where(.ff-section) {
	background: var(--ff-section-bg, transparent);
	color: var(--ff-color-text);
	font-family: var(--ff-font-body);
	padding-block: var(--ff-section-padding-y);
}

:where(.ff-mode-dark .ff-section) {
	--ff-section-bg: var(--ff-color-bg);
}

:where(.ff-theme-dark, .ff-hero--dark, .ff-cta--dark) {
	--ff-section-bg: #111827;
	--ff-color-text: #ffffff;
	--ff-color-muted: rgba(255, 255, 255, 0.72);
	--ff-color-border: rgba(255, 255, 255, 0.18);
	--ff-color-surface: rgba(255, 255, 255, 0.08);
}

:where(.ff-container) {
	inline-size: min(100% - 32px, var(--ff-container-width));
	margin-inline: auto;
}

:where(.ff-stack) {
	display: grid;
	gap: var(--ff-stack-gap, 1rem);
}

:where(.ff-cluster) {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

:where(.ff-grid) {
	display: grid;
	gap: clamp(1rem, 3vw, 2rem);
}

@media (min-width: 760px) {
	:where(.ff-grid--2) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	:where(.ff-grid--3) {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

:where(.ff-hero) {
	--ff-stack-gap: 1.25rem;
}

:where(.ff-eyebrow) {
	color: var(--ff-color-accent);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0;
	margin: 0 0 0.75rem;
	text-transform: uppercase;
}

:where(.ff-headline) {
	color: inherit;
	font-family: var(--ff-font-heading);
	font-size: clamp(2rem, 5vw, 4rem);
	line-height: 1.04;
	margin: 0;
}

:where(.ff-hero .ff-headline) {
	font-size: var(--ff-font-size-hero);
}

:where(.ff-subheadline) {
	color: var(--ff-color-muted);
	font-size: clamp(1.05rem, 2vw, 1.35rem);
	line-height: 1.6;
	margin: 0;
	max-inline-size: 68ch;
}

:where(.ff-muted) {
	color: var(--ff-color-muted);
	line-height: 1.65;
	margin-block: 0 1rem;
}

:where(.ff-card, .ff-pricing-card, .ff-member-card, .ff-locked-teaser) {
	background: var(--ff-color-surface);
	border: 1px solid var(--ff-color-border);
	border-radius: var(--ff-radius-lg);
	box-shadow: var(--ff-shadow-card);
	color: var(--ff-color-text);
	padding: clamp(1.25rem, 3vw, 2rem);
}

:where(.ff-card--flat) {
	box-shadow: none;
}

:where(.ff-button) {
	align-items: center;
	background: var(--ff-color-primary);
	border: 1px solid transparent;
	border-radius: var(--ff-button-radius);
	color: #ffffff;
	display: inline-flex;
	font-weight: 700;
	gap: 0.5rem;
	justify-content: center;
	line-height: 1.2;
	min-block-size: 44px;
	padding: 0.8rem 1.15rem;
	text-decoration: none;
	transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

:where(.wp-block-button.ff-button) {
	background: none;
	border: 0;
	border-radius: 0;
	color: inherit;
	display: inline-flex;
	min-block-size: auto;
	padding: 0;
	transform: none;
}

:where(.wp-block-button.ff-button > .wp-block-button__link) {
	align-items: center;
	background: var(--ff-color-primary);
	border: 1px solid transparent;
	border-radius: var(--ff-button-radius);
	color: #ffffff;
	display: inline-flex;
	font-weight: 700;
	gap: 0.5rem;
	justify-content: center;
	line-height: 1.2;
	min-block-size: 44px;
	padding: 0.8rem 1.15rem;
	text-decoration: none;
}

:where(.wp-block-button.ff-button--secondary > .wp-block-button__link) {
	background: var(--ff-color-secondary);
}

:where(.wp-block-button.ff-button--accent > .wp-block-button__link) {
	background: var(--ff-color-accent);
	color: #111827;
}

:where(.wp-block-button.ff-button--ghost > .wp-block-button__link) {
	background: transparent;
	border-color: var(--ff-color-border);
	color: var(--ff-color-text);
}

:where(.ff-button:not(.wp-block-button):hover, .ff-button:not(.wp-block-button):focus-visible, .wp-block-button.ff-button > .wp-block-button__link:hover, .wp-block-button.ff-button > .wp-block-button__link:focus-visible) {
	color: #ffffff;
	transform: translateY(-1px);
}

:where(.ff-button:not(.wp-block-button):focus-visible, .wp-block-button.ff-button > .wp-block-button__link:focus-visible) {
	outline: 3px solid var(--ff-color-accent);
	outline: 3px solid color-mix(in srgb, var(--ff-color-accent), transparent 35%);
	outline-offset: 3px;
}

:where(.ff-button--secondary) {
	background: var(--ff-color-secondary);
}

:where(.ff-button--accent) {
	background: var(--ff-color-accent);
	color: #111827;
}

:where(.ff-button--accent:not(.wp-block-button):hover, .ff-button--accent:not(.wp-block-button):focus-visible, .wp-block-button.ff-button--accent > .wp-block-button__link:hover, .wp-block-button.ff-button--accent > .wp-block-button__link:focus-visible) {
	color: #111827;
}

:where(.ff-button--ghost) {
	background: transparent;
	border-color: var(--ff-color-border);
	color: var(--ff-color-text);
}

:where(.ff-button--ghost:not(.wp-block-button):hover, .ff-button--ghost:not(.wp-block-button):focus-visible, .wp-block-button.ff-button--ghost > .wp-block-button__link:hover, .wp-block-button.ff-button--ghost > .wp-block-button__link:focus-visible) {
	color: var(--ff-color-text);
}

:where(.ff-badge) {
	background: rgba(20, 92, 255, 0.12);
	background: color-mix(in srgb, var(--ff-color-primary), transparent 88%);
	border-radius: 999px;
	color: var(--ff-color-primary);
	display: inline-flex;
	font-size: 0.82rem;
	font-weight: 700;
	padding: 0.35rem 0.7rem;
}

:where(.ff-alert) {
	border-inline-start: 4px solid var(--ff-color-accent);
	padding: 1rem;
}

:where(.ff-pricing-card) {
	display: grid;
	gap: 1rem;
}

:where(.ff-price) {
	font-family: var(--ff-font-heading);
	font-size: clamp(2rem, 4vw, 3rem);
	font-weight: 800;
	line-height: 1;
}

:where(.ff-member-card) {
	display: grid;
	gap: 0.75rem;
}

:where(.ff-locked-teaser) {
	border-style: dashed;
}

:where(.ff-logo-row) {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: clamp(1rem, 4vw, 3rem);
	justify-content: center;
	opacity: 0.78;
}

:where(.ff-logo-row img) {
	block-size: 34px;
	inline-size: auto;
	object-fit: contain;
}

@media (prefers-reduced-motion: reduce) {
	:where(.ff-button) {
		transition: none;
	}

	:where(.ff-button:hover, .ff-button:focus-visible) {
		transform: none;
	}
}

/* Advanced dark learning system. All selectors remain scoped to ff- classes. */
:where(.ff-section) {
	--ff-ink: var(--ff-dark-bg, #07090d);
	--ff-ink-elevated: var(--ff-dark-surface, #111720);
	--ff-ink-soft: color-mix(in srgb, var(--ff-dark-surface, #111720), var(--ff-dark-bg, #07090d) 35%);
	--ff-ink-border: color-mix(in srgb, var(--ff-dark-border, #2b3544), transparent 12%);
	--ff-ink-border-strong: var(--ff-dark-border, #2b3544);
	--ff-on-ink: var(--ff-dark-text, #f5f7fa);
	--ff-on-ink-muted: var(--ff-dark-muted, #a9b2c0);
	--ff-content-gap: clamp(1.25rem, 3vw, 2.5rem);
	--ff-radius-xl: clamp(18px, 2vw, 28px);
	isolation: isolate;
	overflow: clip;
	position: relative;
}

:where(.ff-section--ink, .ff-theme-dark) {
	--ff-section-bg: var(--ff-ink);
	--ff-color-text: var(--ff-on-ink);
	--ff-color-muted: var(--ff-on-ink-muted);
	--ff-color-surface: var(--ff-ink-elevated);
	--ff-color-border: var(--ff-ink-border);
}

:where(.ff-section--ink-soft) {
	--ff-section-bg: var(--ff-ink-soft);
	--ff-color-text: var(--ff-on-ink);
	--ff-color-muted: var(--ff-on-ink-muted);
	--ff-color-surface: var(--ff-ink-elevated);
	--ff-color-border: var(--ff-ink-border);
}

:where(.ff-section--compact) {
	padding-block: clamp(2rem, 5vw, 4rem);
}

:where(.ff-section--flush) {
	padding-block: 0;
}

:where(.ff-section--rule)::before {
	background: linear-gradient(90deg, transparent, var(--ff-color-border), transparent);
	content: "";
	height: 1px;
	inset: 0 8% auto;
	pointer-events: none;
	position: absolute;
}

:where(.ff-section--glow)::after {
	background: linear-gradient(90deg, transparent, var(--ff-color-primary), var(--ff-color-accent), transparent);
	bottom: 0;
	box-shadow: 0 0 28px color-mix(in srgb, var(--ff-color-primary), transparent 35%);
	content: "";
	height: 1px;
	left: 10%;
	opacity: 0.55;
	pointer-events: none;
	position: absolute;
	right: 10%;
}

:where(.ff-container--wide) {
	inline-size: min(100% - 32px, calc(var(--ff-container-width) + 160px));
	margin-inline: auto;
}

:where(.ff-container--narrow) {
	inline-size: min(100% - 32px, 760px);
	margin-inline: auto;
}

:where(.ff-stack--sm) {
	--ff-stack-gap: 0.625rem;
}

:where(.ff-stack--lg) {
	--ff-stack-gap: clamp(1.5rem, 4vw, 3rem);
}

:where(.ff-grid--auto) {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));
}

:where(.ff-grid--dense) {
	gap: clamp(0.75rem, 2vw, 1.25rem);
}

:where(.ff-align-center) {
	align-items: center;
}

:where(.ff-text-center) {
	text-align: center;
}

:where(.ff-text-center .ff-subheadline, .ff-text-center .ff-section-copy) {
	margin-inline: auto;
}

:where(.ff-section-intro) {
	display: grid;
	gap: 0.85rem;
	margin-block-end: clamp(1.75rem, 5vw, 3.5rem);
	max-inline-size: 780px;
}

:where(.ff-section-title) {
	color: inherit;
	font-family: var(--ff-font-heading);
	font-size: clamp(1.75rem, 4vw, 3.4rem);
	font-weight: 800;
	line-height: 1.08;
	margin: 0;
}

:where(.ff-display) {
	color: inherit;
	font-family: var(--ff-font-heading);
	font-size: clamp(2.8rem, 9vw, 7rem);
	font-weight: 850;
	line-height: 0.96;
	margin: 0;
	max-inline-size: 14ch;
}

:where(.ff-section-copy) {
	color: var(--ff-color-muted);
	font-size: clamp(1rem, 1.7vw, 1.2rem);
	line-height: 1.7;
	margin: 0;
	max-inline-size: 64ch;
}

:where(.ff-kicker) {
	align-items: center;
	color: var(--ff-color-muted);
	display: inline-flex;
	font-size: 0.78rem;
	font-weight: 700;
	gap: 0.6rem;
	letter-spacing: 0;
	margin: 0;
	text-transform: uppercase;
}

:where(.ff-kicker)::before {
	background: var(--ff-color-accent);
	content: "";
	height: 1px;
	inline-size: 28px;
}

:where(.ff-link) {
	color: var(--ff-color-accent);
	display: inline-flex;
	font-weight: 700;
	gap: 0.55rem;
	text-decoration: none;
}

:where(.ff-link)::after {
	content: "\2192";
	transition: transform 180ms ease;
}

:where(.ff-link:hover)::after,
:where(.ff-link:focus-visible)::after {
	transform: translateX(4px);
}

:where(.ff-chip-list) {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

:where(.ff-chip) {
	background: color-mix(in srgb, var(--ff-color-surface), transparent 12%);
	border: 1px solid var(--ff-color-border);
	border-radius: 999px;
	color: var(--ff-color-muted);
	display: inline-flex;
	font-size: 0.76rem;
	font-weight: 700;
	line-height: 1;
	padding: 0.55rem 0.75rem;
}

:where(.ff-chip--active) {
	background: color-mix(in srgb, var(--ff-color-primary), transparent 82%);
	border-color: color-mix(in srgb, var(--ff-color-primary), transparent 45%);
	color: var(--ff-color-text);
}

:where(.ff-media) {
	aspect-ratio: 16 / 10;
	background:
		linear-gradient(135deg, color-mix(in srgb, var(--ff-color-primary), #111827 72%), var(--ff-ink)),
		var(--ff-ink-elevated);
	border: 1px solid var(--ff-color-border);
	border-radius: var(--ff-radius-xl);
	box-shadow: 0 24px 80px rgba(0, 0, 0, 0.32);
	isolation: isolate;
	margin: 0;
	overflow: hidden;
	position: relative;
}

:where(.ff-media img) {
	block-size: 100%;
	inline-size: 100%;
	object-fit: cover;
	transition: transform 500ms ease;
}

:where(.ff-media > .wp-block-cover__inner-container) {
	align-self: end;
	position: relative;
	z-index: 2;
}

:where(.ff-media--overlay)::after {
	background: linear-gradient(180deg, transparent 26%, rgba(3, 5, 8, 0.9) 100%);
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
	z-index: 1;
}

:where(.ff-media--hero) {
	aspect-ratio: 16 / 9;
	block-size: clamp(420px, 55vw, 680px);
	min-block-size: 420px;
}

:where(.ff-media--course) {
	aspect-ratio: 4 / 5;
}

:where(.ff-media--landscape) {
	aspect-ratio: 16 / 9;
}

:where(.ff-media--portrait) {
	aspect-ratio: 3 / 4;
}

:where(.ff-media--square) {
	aspect-ratio: 1;
}

:where(.ff-media--banner) {
	aspect-ratio: 21 / 8;
}

:where(.ff-media-placeholder) {
	align-items: center;
	color: var(--ff-on-ink-muted);
	display: grid;
	justify-items: center;
	min-block-size: 240px;
	padding: 2rem;
	text-align: center;
}

:where(.ff-media-placeholder)::before {
	border: 1px solid var(--ff-ink-border-strong);
	border-radius: 50%;
	content: "";
	height: 42px;
	inline-size: 42px;
}

:where(.ff-media-caption) {
	background: linear-gradient(180deg, transparent, rgba(3, 5, 8, 0.88));
	bottom: 0;
	color: var(--ff-on-ink);
	display: grid;
	gap: 0.35rem;
	inset-inline: 0;
	padding: clamp(3rem, 8vw, 6rem) clamp(1rem, 3vw, 1.6rem) clamp(1rem, 3vw, 1.6rem);
	position: absolute;
	z-index: 2;
}

:where(.ff-video-stage) {
	aspect-ratio: 16 / 9;
	border-radius: var(--ff-radius-xl);
	min-block-size: 300px;
}

:where(.ff-play-button) {
	align-items: center;
	background: rgba(7, 9, 13, 0.72);
	border: 1px solid rgba(255, 255, 255, 0.28);
	border-radius: 999px;
	color: #ffffff;
	display: inline-flex;
	font-size: 0.82rem;
	font-weight: 700;
	gap: 0.65rem;
	margin: 0;
	padding: 0.65rem 0.9rem 0.65rem 0.7rem;
	width: fit-content;
}

:where(.ff-play-button)::before {
	border-block: 5px solid transparent;
	border-inline-start: 8px solid currentColor;
	content: "";
	height: 0;
	margin-inline-start: 3px;
	width: 0;
}

:where(.ff-card--interactive, .ff-course-card, .ff-download-card, .ff-instructor-card, .ff-testimonial-card) {
	transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

:where(.ff-card--interactive:hover, .ff-course-card:hover, .ff-download-card:hover, .ff-instructor-card:hover, .ff-testimonial-card:hover) {
	border-color: color-mix(in srgb, var(--ff-color-primary), transparent 28%);
	box-shadow: 0 24px 70px rgba(0, 0, 0, 0.28);
	transform: translateY(-4px);
}

:where(.ff-course-card) {
	background: var(--ff-color-surface);
	border: 1px solid var(--ff-color-border);
	border-radius: var(--ff-radius-lg);
	color: var(--ff-color-text);
	display: grid;
	grid-template-rows: auto 1fr;
	height: 100%;
	min-inline-size: 0;
	overflow: hidden;
	position: relative;
}

:where(.ff-course-card .ff-media) {
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

:where(.ff-course-card:hover .ff-media img) {
	transform: scale(1.035);
}

:where(.ff-course-card__body) {
	display: grid;
	gap: 0.75rem;
	grid-template-rows: auto minmax(3.8em, 1fr) auto;
	padding: clamp(1rem, 2.5vw, 1.4rem);
}

:where(.ff-course-card__title) {
	color: inherit;
	font-family: var(--ff-font-heading);
	font-size: clamp(1.05rem, 2vw, 1.35rem);
	font-weight: 800;
	line-height: 1.2;
	margin: 0;
}

:where(.ff-course-meta) {
	align-items: center;
	color: var(--ff-color-muted);
	display: flex;
	flex-wrap: wrap;
	font-size: 0.78rem;
	gap: 0.45rem 0.85rem;
	margin: 0;
}

:where(.ff-course-meta > *) {
	margin: 0;
}

:where(.ff-course-meta > * + *)::before {
	color: var(--ff-color-border);
	content: "/";
	margin-inline-end: 0.85rem;
}

:where(.ff-course-card__footer) {
	align-items: center;
	border-block-start: 1px solid var(--ff-color-border);
	display: flex;
	gap: 0.75rem;
	justify-content: space-between;
	margin-block-start: auto;
	padding-block-start: 0.8rem;
}

:where(.ff-scroll-row) {
	display: grid;
	gap: 1rem;
	grid-auto-columns: minmax(min(82vw, 280px), 1fr);
	grid-auto-flow: column;
	overflow-x: auto;
	padding-block: 0.25rem 1rem;
	scroll-snap-type: inline mandatory;
	scrollbar-color: var(--ff-color-border) transparent;
}

:where(.ff-scroll-row > *) {
	scroll-snap-align: start;
}

:where(.ff-stat-grid) {
	display: grid;
	gap: 0.75rem;
	grid-auto-rows: 1fr;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

:where(.ff-stat) {
	background: color-mix(in srgb, var(--ff-color-surface), transparent 8%);
	border: 1px solid var(--ff-color-border);
	border-radius: var(--ff-radius-md);
	display: grid;
	gap: 0.25rem;
	grid-template-rows: auto 1fr;
	height: 100%;
	min-block-size: 112px;
	padding: clamp(1rem, 2.5vw, 1.5rem);
}

:where(.ff-stat__value) {
	color: var(--ff-color-text);
	font-family: var(--ff-font-heading);
	font-size: clamp(1.6rem, 4vw, 2.8rem);
	font-weight: 850;
	line-height: 1;
	margin: 0;
}

:where(.ff-stat__label) {
	align-self: end;
	color: var(--ff-color-muted);
	font-size: 0.78rem;
	line-height: 1.35;
	margin: 0;
}

:where(.ff-feature-row) {
	align-items: center;
	display: grid;
	gap: clamp(1.5rem, 5vw, 5rem);
}

:where(.ff-feature-copy) {
	display: grid;
	gap: 1rem;
}

:where(.ff-icon-grid) {
	display: grid;
	gap: 0.8rem;
	grid-auto-rows: 1fr;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

:where(.ff-icon-tile) {
	background: color-mix(in srgb, var(--ff-color-surface), transparent 5%);
	border: 1px solid var(--ff-color-border);
	border-radius: var(--ff-radius-md);
	display: grid;
	gap: 0.65rem;
	grid-template-rows: auto auto 1fr;
	height: 100%;
	min-block-size: 190px;
	padding: clamp(1rem, 2vw, 1.35rem);
}

:where(.ff-icon-tile__mark) {
	align-items: center;
	background: color-mix(in srgb, var(--ff-color-primary), transparent 78%);
	border: 1px solid color-mix(in srgb, var(--ff-color-primary), transparent 45%);
	border-radius: var(--ff-radius-sm);
	color: var(--ff-color-text);
	display: inline-flex;
	font-size: 0.74rem;
	font-weight: 800;
	height: 42px;
	justify-content: center;
	margin: 0;
	width: 42px;
}

:where(.ff-icon-tile__mark--icon) {
	border-radius: 50%;
	font-size: 1rem;
}

:where(.ff-check-list) {
	display: grid;
	gap: 0.75rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

:where(.ff-check-list li) {
	align-items: start;
	color: var(--ff-color-muted);
	display: grid;
	gap: 0.7rem;
	grid-template-columns: 20px 1fr;
	line-height: 1.55;
}

:where(.ff-check-list li)::before {
	color: var(--ff-color-accent);
	content: "\2713";
	font-weight: 900;
}

:where(.ff-progress) {
	background: color-mix(in srgb, var(--ff-color-border), transparent 35%);
	border-radius: 999px;
	height: 7px;
	overflow: hidden;
}

:where(.ff-progress > *) {
	background: linear-gradient(90deg, var(--ff-color-primary), var(--ff-color-accent));
	border-radius: inherit;
	display: block;
	height: 100%;
	margin: 0;
	width: var(--ff-progress-value, 50%);
}

:where(.ff-progress--25) {
	--ff-progress-value: 25%;
}

:where(.ff-progress--38) {
	--ff-progress-value: 38%;
}

:where(.ff-progress--65) {
	--ff-progress-value: 65%;
}

:where(.ff-progress--90) {
	--ff-progress-value: 90%;
}

:where(.ff-lesson-list, .ff-resource-list, .ff-timeline) {
	display: grid;
	gap: 0.75rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

:where(.ff-lesson-item, .ff-resource-item) {
	align-items: center;
	background: color-mix(in srgb, var(--ff-color-surface), transparent 4%);
	border: 1px solid var(--ff-color-border);
	border-radius: var(--ff-radius-md);
	display: grid;
	gap: 0.8rem;
	grid-template-columns: auto 1fr auto;
	padding: 0.9rem 1rem;
}

:where(.ff-lesson-index, .ff-resource-icon) {
	align-items: center;
	background: color-mix(in srgb, var(--ff-color-primary), transparent 82%);
	border: 1px solid color-mix(in srgb, var(--ff-color-primary), transparent 55%);
	border-radius: 50%;
	color: var(--ff-color-text);
	display: inline-flex;
	font-size: 0.7rem;
	font-weight: 800;
	height: 32px;
	justify-content: center;
	margin: 0;
	width: 32px;
}

:where(.ff-lesson-duration, .ff-resource-type) {
	color: var(--ff-color-muted);
	font-size: 0.72rem;
	margin: 0;
}

:where(.ff-timeline) {
	counter-reset: ff-timeline;
}

:where(.ff-timeline > *) {
	border-inline-start: 1px solid var(--ff-color-border);
	display: grid;
	gap: 0.6rem;
	padding: 0 0 1.75rem 1.5rem;
	position: relative;
}

:where(.ff-timeline > *)::before {
	align-items: center;
	background: var(--ff-ink-elevated);
	border: 1px solid var(--ff-color-accent);
	border-radius: 50%;
	color: var(--ff-color-accent);
	content: counter(ff-timeline, decimal-leading-zero);
	counter-increment: ff-timeline;
	display: inline-flex;
	font-size: 0.65rem;
	font-weight: 800;
	height: 28px;
	justify-content: center;
	left: -15px;
	position: absolute;
	top: 0;
	width: 28px;
}

:where(.ff-code-panel) {
	background: #090c11;
	border: 1px solid var(--ff-ink-border-strong);
	border-radius: var(--ff-radius-lg);
	box-shadow: 0 22px 70px rgba(0, 0, 0, 0.34);
	color: #dce5f0;
	overflow: hidden;
}

:where(.ff-code-panel__bar) {
	align-items: center;
	background: #111722;
	border-block-end: 1px solid var(--ff-ink-border);
	display: flex;
	gap: 0.45rem;
	padding: 0.75rem 1rem;
}

:where(.ff-code-panel__bar)::before {
	color: #ff6b6b;
	content: "\25CF  \25CF  \25CF";
	font-size: 0.65rem;
	word-spacing: 0.25rem;
}

:where(.ff-code-panel pre) {
	background: transparent;
	border: 0;
	color: inherit;
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: clamp(0.78rem, 1.5vw, 0.95rem);
	line-height: 1.75;
	margin: 0;
	overflow-x: auto;
	padding: clamp(1rem, 3vw, 1.75rem);
	white-space: pre;
}

:where(.ff-download-card) {
	align-items: center;
	background: var(--ff-color-surface);
	border: 1px solid var(--ff-color-border);
	border-radius: var(--ff-radius-lg);
	color: var(--ff-color-text);
	display: grid;
	gap: 1rem;
	grid-template-columns: auto 1fr;
	padding: clamp(1rem, 2.5vw, 1.5rem);
}

:where(.ff-download-card__icon) {
	align-items: center;
	background: color-mix(in srgb, var(--ff-color-accent), transparent 82%);
	border: 1px solid color-mix(in srgb, var(--ff-color-accent), transparent 48%);
	border-radius: var(--ff-radius-md);
	color: var(--ff-color-text);
	display: inline-flex;
	font-size: 0.72rem;
	font-weight: 850;
	height: 48px;
	justify-content: center;
	margin: 0;
	width: 48px;
}

:where(.ff-download-card__action) {
	grid-column: 1 / -1;
}

:where(.ff-avatar) {
	aspect-ratio: 1;
	border: 2px solid color-mix(in srgb, var(--ff-color-primary), transparent 42%);
	border-radius: 50%;
	display: block;
	margin: 0;
	object-fit: cover;
	overflow: hidden;
	width: clamp(64px, 8vw, 96px);
}

:where(.ff-avatar img) {
	block-size: 100%;
	inline-size: 100%;
	object-fit: cover;
}

:where(.ff-instructor-card) {
	background: var(--ff-color-surface);
	border: 1px solid var(--ff-color-border);
	border-radius: var(--ff-radius-lg);
	color: var(--ff-color-text);
	display: grid;
	gap: 1rem;
	padding: clamp(1rem, 2.5vw, 1.5rem);
}

:where(.ff-instructor-card .ff-media) {
	border-radius: var(--ff-radius-md);
	box-shadow: none;
}

:where(.ff-testimonial-card) {
	background: var(--ff-color-surface);
	border: 1px solid var(--ff-color-border);
	border-radius: var(--ff-radius-lg);
	color: var(--ff-color-text);
	display: grid;
	gap: 1rem;
	padding: clamp(1.25rem, 3vw, 2rem);
}

:where(.ff-quote) {
	color: var(--ff-color-text);
	font-family: var(--ff-font-heading);
	font-size: clamp(1.05rem, 2vw, 1.35rem);
	font-weight: 650;
	line-height: 1.5;
	margin: 0;
}

:where(.ff-quote)::before {
	color: var(--ff-color-accent);
	content: "\201C";
	display: block;
	font-size: 3rem;
	line-height: 0.7;
	margin-block-end: 0.4rem;
}

:where(.ff-price-card) {
	background: var(--ff-color-surface);
	border: 1px solid var(--ff-color-border);
	border-radius: var(--ff-radius-lg);
	color: var(--ff-color-text);
	display: grid;
	gap: 1.25rem;
	padding: clamp(1.25rem, 3vw, 2rem);
	position: relative;
}

:where(.ff-price-card--featured) {
	background:
		linear-gradient(180deg, color-mix(in srgb, var(--ff-color-primary), transparent 78%), transparent 35%),
		var(--ff-color-surface);
	border-color: color-mix(in srgb, var(--ff-color-accent), transparent 30%);
	box-shadow: 0 28px 90px rgba(0, 0, 0, 0.34);
}

:where(.ff-price-card--featured)::before {
	background: var(--ff-color-accent);
	border-radius: 999px;
	content: "";
	height: 2px;
	left: 12px;
	pointer-events: none;
	position: absolute;
	right: 12px;
	top: -1px;
}

:where(.ff-price-card .ff-button, .ff-price-card .wp-block-button) {
	inline-size: 100%;
}

:where(.ff-price-card .wp-block-button__link) {
	inline-size: 100%;
}

:where(.ff-comparison) {
	border: 1px solid var(--ff-color-border);
	border-radius: var(--ff-radius-lg);
	overflow: hidden;
}

:where(.ff-comparison-row) {
	align-items: center;
	border-block-end: 1px solid var(--ff-color-border);
	display: grid;
	gap: 0.75rem;
	grid-template-columns: minmax(0, 1.5fr) repeat(2, minmax(70px, 0.5fr));
	padding: 0.9rem 1rem;
}

:where(.ff-comparison-row:last-child) {
	border-block-end: 0;
}

:where(.ff-comparison-row > *) {
	margin: 0;
}

:where(.ff-comparison-check) {
	color: var(--ff-color-accent);
	font-weight: 900;
	text-align: center;
}

:where(.ff-banner) {
	align-items: center;
	background:
		linear-gradient(120deg, color-mix(in srgb, var(--ff-color-primary), transparent 72%), transparent 60%),
		var(--ff-color-surface);
	border: 1px solid var(--ff-color-border);
	border-radius: var(--ff-radius-xl);
	display: grid;
	gap: 1.5rem;
	padding: clamp(1.5rem, 5vw, 3.5rem);
}

:where(.ff-cta-bar) {
	align-items: center;
	background: rgba(7, 9, 13, 0.88);
	border: 1px solid var(--ff-ink-border-strong);
	border-radius: var(--ff-radius-lg);
	box-shadow: 0 20px 70px rgba(0, 0, 0, 0.38);
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	justify-content: space-between;
	padding: 0.85rem 1rem;
}

:where(.ff-cta--soft) {
	background:
		linear-gradient(120deg, color-mix(in srgb, var(--ff-color-primary), transparent 88%), transparent 65%),
		var(--ff-color-surface);
	border-color: color-mix(in srgb, var(--ff-color-primary), transparent 55%);
}

:where(.ff-eyebrow-row) {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.7rem 1rem;
	justify-content: space-between;
}

:where(.ff-divider-label) {
	align-items: center;
	color: var(--ff-color-muted);
	display: grid;
	font-size: 0.72rem;
	gap: 1rem;
	grid-template-columns: 1fr auto 1fr;
	margin: 0;
	text-transform: uppercase;
}

:where(.ff-divider-label)::before,
:where(.ff-divider-label)::after {
	background: var(--ff-color-border);
	content: "";
	height: 1px;
}

:where(.ff-faq details) {
	background: color-mix(in srgb, var(--ff-color-surface), transparent 3%);
	border: 1px solid var(--ff-color-border);
	border-radius: var(--ff-radius-md);
	color: var(--ff-color-text);
	padding: 1rem 1.1rem;
}

:where(.ff-faq details + details) {
	margin-block-start: 0.7rem;
}

:where(.ff-faq summary) {
	cursor: pointer;
	font-weight: 750;
}

:where(.ff-faq details[open]) {
	border-color: color-mix(in srgb, var(--ff-color-primary), transparent 48%);
}

:where(.ff-animate-in) {
	animation: ff-fade-up 520ms ease both;
}

@keyframes ff-fade-up {
	from {
		opacity: 0;
		transform: translateY(12px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@media (min-width: 760px) {
	:where(.ff-grid--4) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	:where(.ff-grid--sidebar) {
		grid-template-columns: minmax(240px, 0.65fr) minmax(0, 1.35fr);
	}

	:where(.ff-feature-row) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	:where(.ff-feature-row--reverse > :first-child) {
		order: 2;
	}

	:where(.ff-scroll-row) {
		grid-auto-columns: minmax(240px, 300px);
	}

	:where(.ff-stat-grid) {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	:where(.ff-download-card) {
		grid-template-columns: auto 1fr auto;
	}

	:where(.ff-download-card__action) {
		grid-column: auto;
	}

	:where(.ff-banner) {
		grid-template-columns: minmax(0, 1fr) auto;
	}
}

@media (min-width: 1100px) {
	:where(.ff-grid--4) {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	:where(.ff-grid--hero) {
		grid-template-columns: minmax(0, 1fr) minmax(420px, 1fr);
	}
}

@media (max-width: 759px) {
	:where(.ff-container, .ff-container--wide, .ff-container--narrow) {
		inline-size: min(100% - 24px, var(--ff-container-width));
	}

	:where(.ff-display) {
		font-size: clamp(2.5rem, 14vw, 4.2rem);
	}

	:where(.ff-media--hero) {
		aspect-ratio: 4 / 5;
		min-block-size: 420px;
	}

	:where(.ff-media--banner) {
		aspect-ratio: 4 / 3;
	}

	:where(.ff-icon-grid) {
		grid-template-columns: 1fr;
	}

	:where(.ff-lesson-item, .ff-resource-item) {
		grid-template-columns: auto 1fr;
	}

	:where(.ff-lesson-duration, .ff-resource-type) {
		grid-column: 2;
	}

	:where(.ff-comparison-row) {
		font-size: 0.78rem;
		grid-template-columns: minmax(0, 1fr) repeat(2, 56px);
		padding-inline: 0.75rem;
	}

	:where(.ff-cta-bar) {
		align-items: stretch;
		flex-direction: column;
	}

	:where(.ff-cta-bar .ff-button, .ff-cta-bar .wp-block-button, .ff-cta-bar .wp-block-button__link) {
		inline-size: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	:where(.ff-animate-in) {
		animation: none;
	}

	:where(.ff-link)::after,
	:where(.ff-media img),
	:where(.ff-card--interactive, .ff-course-card, .ff-download-card, .ff-instructor-card, .ff-testimonial-card) {
		transition: none;
	}

	:where(.ff-card--interactive:hover, .ff-course-card:hover, .ff-download-card:hover, .ff-instructor-card:hover, .ff-testimonial-card:hover) {
		transform: none;
	}
}

/*
 * Theme compatibility layer.
 *
 * WordPress themes often load after plugin styles and apply margins, button
 * colors, and heading sizes with higher specificity. These selectors remain
 * strictly scoped to FunnelForge while keeping components visually stable.
 */
.ff-section.ff-section {
	font-size: var(--ff-font-size-base);
	line-height: 1.65;
	margin-block: 0;
}

.ff-section.ff-section :where(.ff-container, .ff-container--wide, .ff-container--narrow) {
	box-sizing: border-box;
}

.ff-section.ff-section :where(
	.ff-stack,
	.ff-cluster,
	.ff-grid,
	.ff-stat-grid,
	.ff-icon-grid,
	.ff-chip-list,
	.ff-section-intro,
	.ff-feature-copy,
	.ff-course-card,
	.ff-course-card__body,
	.ff-course-meta,
	.ff-price-card,
	.ff-banner,
	.ff-cta-bar,
	.ff-media-caption,
	.ff-download-card,
	.ff-instructor-card,
	.ff-testimonial-card,
	.ff-lesson-list,
	.ff-resource-list,
	.ff-timeline,
	.ff-comparison-row
) > * {
	margin-block: 0;
	min-inline-size: 0;
}

.ff-section.ff-section .ff-stack {
	display: grid;
	gap: var(--ff-stack-gap, 1rem);
}

.ff-section.ff-section .ff-cluster {
	display: flex;
	gap: 0.75rem;
}

.ff-section.ff-section :where(.ff-grid, .ff-stat-grid, .ff-icon-grid) {
	align-items: stretch;
}

.ff-section.ff-section .ff-display {
	color: inherit;
	font-family: var(--ff-font-heading);
	font-size: var(--ff-font-size-hero);
	font-weight: 850;
	letter-spacing: 0;
	line-height: 0.98;
	margin: 0;
}

.ff-section.ff-section .ff-grid--hero .ff-display {
	font-size: min(var(--ff-font-size-hero), clamp(2.75rem, 4.6vw, 4.75rem));
}

.ff-section.ff-section .ff-grid--2 .ff-display {
	font-size: min(var(--ff-font-size-hero), clamp(2.4rem, 4vw, 4.5rem));
}

.ff-section.ff-section .ff-section-title {
	color: inherit;
	font-family: var(--ff-font-heading);
	font-size: clamp(1.75rem, 3.5vw, 3.25rem);
	font-weight: 800;
	letter-spacing: 0;
	line-height: 1.1;
	margin: 0;
}

.ff-section.ff-section .ff-course-card__title,
.ff-section.ff-section .ff-icon-tile h3 {
	color: inherit;
	font-family: var(--ff-font-heading);
	font-size: clamp(1.05rem, 2vw, 1.35rem);
	font-weight: 800;
	letter-spacing: 0;
	line-height: 1.25;
	margin: 0;
}

.ff-section.ff-section :where(.ff-subheadline, .ff-section-copy, .ff-muted) {
	color: var(--ff-color-muted);
	margin: 0;
}

.ff-section.ff-section .ff-kicker {
	align-items: center;
	color: var(--ff-color-muted);
	display: inline-flex;
	font-size: 0.78rem;
	font-weight: 700;
	gap: 0.6rem;
	line-height: 1.25;
	margin: 0;
	text-transform: uppercase;
}

.ff-section.ff-section .ff-chip {
	background: color-mix(in srgb, var(--ff-color-surface), transparent 12%);
	border: 1px solid var(--ff-color-border);
	border-radius: 999px;
	color: var(--ff-color-muted);
	display: inline-flex;
	font-size: 0.76rem;
	font-weight: 700;
	line-height: 1;
	margin: 0;
	padding: 0.55rem 0.75rem;
}

.ff-section.ff-section .ff-chip--active {
	background: color-mix(in srgb, var(--ff-color-primary), transparent 82%);
	border-color: color-mix(in srgb, var(--ff-color-primary), transparent 45%);
	color: var(--ff-color-text);
}

.ff-section.ff-section .ff-play-button {
	background: rgba(7, 9, 13, 0.72);
	border: 1px solid rgba(255, 255, 255, 0.28);
	border-radius: 999px;
	color: #ffffff;
	display: inline-flex;
	margin: 0;
	padding: 0.65rem 0.9rem 0.65rem 0.7rem;
}

.ff-section.ff-section :where(.ff-stat, .ff-icon-tile, .ff-course-card, .ff-price-card, .ff-instructor-card, .ff-testimonial-card) {
	box-sizing: border-box;
	height: 100%;
	margin: 0;
}

.ff-section.ff-section .ff-grid > :where(.ff-card, .ff-pricing-card, .ff-member-card, .ff-locked-teaser, .ff-download-card) {
	box-sizing: border-box;
	height: 100%;
	margin: 0;
}

.ff-section.ff-section .ff-price-card > .wp-block-buttons {
	margin-block-start: auto;
}

.ff-section.ff-section .ff-stat__value {
	color: var(--ff-color-text);
	font-size: clamp(1.6rem, 4vw, 2.8rem);
	line-height: 1;
	margin: 0;
}

.ff-section.ff-section .ff-stat__label {
	color: var(--ff-color-muted);
	font-size: 0.78rem;
	line-height: 1.35;
	margin: 0;
}

.ff-section.ff-section .ff-icon-tile__mark {
	display: inline-flex;
	margin: 0;
}

.ff-section.ff-section .ff-icon-tile .ff-muted {
	align-self: end;
}

.ff-section.ff-section .ff-course-meta {
	align-self: end;
	display: flex;
	margin: 0;
}

.ff-section.ff-section .ff-section-intro.ff-text-center {
	margin-inline: auto;
}

.ff-section.ff-section .ff-text-center .ff-kicker {
	justify-self: center;
}

.wp-block-button.ff-button.ff-button {
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	color: inherit;
	display: inline-flex;
	margin: 0;
	min-block-size: auto;
	padding: 0;
}

.wp-block-button.ff-button.ff-button > .wp-block-button__link {
	align-items: center;
	background: var(--ff-color-primary);
	border: 1px solid transparent;
	border-radius: var(--ff-button-radius);
	box-shadow: none;
	color: #ffffff;
	display: inline-flex;
	font-weight: 700;
	justify-content: center;
	line-height: 1.2;
	min-block-size: 44px;
	padding: 0.8rem 1.15rem;
	text-decoration: none;
}

.wp-block-button.ff-button--secondary.ff-button > .wp-block-button__link {
	background: var(--ff-color-secondary);
}

.wp-block-button.ff-button--accent.ff-button > .wp-block-button__link {
	background: var(--ff-color-accent);
	color: #071016;
}

.wp-block-button.ff-button--ghost.ff-button > .wp-block-button__link {
	background: transparent;
	border-color: var(--ff-color-border);
	color: var(--ff-color-text);
}

.ff-button.ff-button:not(.wp-block-button) {
	border-radius: var(--ff-button-radius);
	box-shadow: none;
	min-block-size: 44px;
}

.ff-button--secondary.ff-button:not(.wp-block-button) {
	background: var(--ff-color-secondary);
}

.ff-button--accent.ff-button:not(.wp-block-button) {
	background: var(--ff-color-accent);
	color: #071016;
}

.ff-button--ghost.ff-button:not(.wp-block-button) {
	background: transparent;
	border-color: var(--ff-color-border);
	color: var(--ff-color-text);
}

@media (max-width: 759px) {
	/*
	 * Gutenberg persists Cover min-height as an inline declaration. This
	 * scoped override is required so existing FunnelForge hero Covers can
	 * shrink to the mobile component height after a plugin update.
	 */
	.ff-section.ff-section .ff-media--hero {
		block-size: 420px;
		min-block-size: 0 !important;
	}

	.ff-section.ff-section .ff-icon-tile {
		min-block-size: 170px;
	}
}

/* Course platform page templates. */
.ff-section.ff-section :where(.ff-dashboard-page, .ff-prompt-base-page, .ff-account-page, .ff-home-page, .ff-email-course-page, .ff-pro-page, .ff-course-dynamic) {
	display: grid;
	gap: clamp(2rem, 5vw, 4.5rem);
}

.ff-section.ff-section :where(.ff-dashboard-hero, .ff-home-hero, .ff-funnel-hero, .ff-login-layout) {
	align-items: center;
	display: grid;
	gap: clamp(2rem, 6vw, 5rem);
	grid-template-columns: minmax(0, 1fr);
}

.ff-section.ff-section :where(.ff-dashboard-status, .ff-funnel-card, .ff-login-card, .ff-dashboard-panel, .ff-prompt-card, .ff-account-slot, .ff-optin-card, .ff-home-visual, .ff-pricing-cta) {
	background:
		linear-gradient(180deg, color-mix(in srgb, var(--ff-color-primary), transparent 90%), transparent 52%),
		color-mix(in srgb, var(--ff-color-surface), transparent 5%);
	border: 1px solid var(--ff-color-border);
	border-radius: var(--ff-radius-lg);
	box-shadow: 0 24px 80px rgba(0, 0, 0, 0.26);
	box-sizing: border-box;
	color: var(--ff-color-text);
	margin: 0;
	min-inline-size: 0;
	padding: clamp(1.25rem, 3vw, 2rem);
}

.ff-section.ff-section :where(.ff-dashboard-actions, .ff-value-grid, .ff-day-grid, .ff-prompt-grid, .ff-account-grid) {
	display: grid;
	gap: clamp(0.85rem, 2vw, 1.25rem);
	grid-template-columns: 1fr;
}

.ff-section.ff-section :where(.ff-action-card, .ff-home-strips a, .ff-mini-lesson-list a, .ff-course-lesson-link, .ff-course-nav__lesson, .ff-resource-item) {
	color: inherit;
	text-decoration: none;
}

.ff-section.ff-section .ff-login-layout {
	min-block-size: min(820px, calc(100svh - 80px));
}

.ff-section.ff-section .ff-login-benefits {
	display: grid;
	gap: 0.85rem;
	margin-block-start: clamp(1rem, 3vw, 2rem);
}

.ff-section.ff-section .ff-login-benefits > div {
	align-items: start;
	background: color-mix(in srgb, var(--ff-color-surface), transparent 15%);
	border: 1px solid var(--ff-color-border);
	border-radius: var(--ff-radius-md);
	display: grid;
	gap: 0.25rem 0.8rem;
	grid-template-columns: 36px 1fr;
	padding: 1rem;
}

.ff-section.ff-section .ff-login-benefits span,
.ff-section.ff-section .ff-action-card > span,
.ff-section.ff-section .ff-value-grid article > span {
	background: color-mix(in srgb, var(--ff-color-accent), transparent 78%);
	border: 1px solid color-mix(in srgb, var(--ff-color-accent), transparent 48%);
	border-radius: 50%;
	display: inline-grid;
	height: 34px;
	place-items: center;
	width: 34px;
}

.ff-section.ff-section .ff-login-benefits span::before,
.ff-section.ff-section .ff-action-card > span::before,
.ff-section.ff-section .ff-value-grid article > span::before {
	color: var(--ff-color-accent);
	content: "\2713";
	font-weight: 900;
}

.ff-section.ff-section .ff-login-benefits strong {
	margin: 0;
}

.ff-section.ff-section .ff-login-benefits small {
	color: var(--ff-color-muted);
	grid-column: 2;
	line-height: 1.45;
}

.ff-section.ff-section :where(.ff-login-form, .ff-login-form form, .ff-login-form .login-username, .ff-login-form .login-password, .ff-login-form .login-remember, .ff-login-form .login-submit, .ff-login-card .afmc-login, .ff-login-card .afmc-login form, .ff-login-card .afmc-login p) {
	margin: 0;
}

.ff-section.ff-section :where(.ff-login-form form, .ff-login-card .afmc-login form) {
	display: grid;
	gap: 1rem;
}

.ff-section.ff-section :where(.ff-login-form label, .ff-login-card .afmc-login label) {
	color: var(--ff-color-muted);
	display: block;
	font-size: 0.82rem;
	font-weight: 750;
	line-height: 1.3;
	margin: 0 0 0.45rem;
}

.ff-section.ff-section :where(.ff-login-form input[type="text"], .ff-login-form input[type="password"], .ff-login-card .afmc-login input[type="text"], .ff-login-card .afmc-login input[type="password"]) {
	background: rgba(3, 5, 8, 0.55);
	border: 1px solid var(--ff-color-border);
	border-radius: var(--ff-radius-md);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
	color: var(--ff-color-text);
	inline-size: 100%;
	min-block-size: 52px;
	padding: 0.9rem 1rem;
}

.ff-section.ff-section :where(.ff-login-form input[type="text"]:focus, .ff-login-form input[type="password"]:focus, .ff-login-card .afmc-login input[type="text"]:focus, .ff-login-card .afmc-login input[type="password"]:focus) {
	border-color: color-mix(in srgb, var(--ff-color-primary), transparent 20%);
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--ff-color-primary), transparent 82%);
	outline: 0;
}

.ff-section.ff-section :where(.ff-login-form .login-remember label, .ff-login-card .afmc-login .login-remember label) {
	align-items: center;
	display: flex;
	gap: 0.6rem;
}

.ff-section.ff-section :where(.ff-login-form input[type="checkbox"], .ff-login-card .afmc-login input[type="checkbox"]) {
	accent-color: var(--ff-color-accent);
	block-size: 18px;
	inline-size: 18px;
}

.ff-section.ff-section :where(.ff-login-form input[type="submit"], .ff-login-card .afmc-login input[type="submit"]) {
	background: var(--ff-color-accent);
	border: 0;
	border-radius: var(--ff-button-radius);
	color: #071016;
	cursor: pointer;
	font-weight: 800;
	inline-size: 100%;
	min-block-size: 52px;
	padding: 0.9rem 1.1rem;
}

.ff-section.ff-section .ff-login-lost {
	color: var(--ff-color-accent);
	display: inline-flex;
	font-weight: 700;
	margin-block-start: 1rem;
	text-decoration: none;
}

.ff-section.ff-section .ff-login-register {
	color: var(--ff-color-text);
	font-size: clamp(0.95rem, 1.6vw, 1.08rem);
	line-height: 1.5;
	margin-block-start: 0.85rem;
}

.ff-section.ff-section .ff-login-register a {
	color: var(--ff-color-accent);
	font-weight: 800;
	text-decoration: none;
}

.ff-section.ff-section .ff-login-register a:hover {
	text-decoration: underline;
}

.ff-section.ff-section .ff-dashboard-status {
	align-self: stretch;
	display: grid;
	gap: 0.45rem;
	place-content: end start;
}

.ff-section.ff-section .ff-dashboard-status span,
.ff-section.ff-section .ff-funnel-card span,
.ff-section.ff-section .ff-pricing-cta span {
	color: var(--ff-color-accent);
	font-size: 0.78rem;
	font-weight: 800;
	text-transform: uppercase;
}

.ff-section.ff-section .ff-dashboard-status strong,
.ff-section.ff-section .ff-funnel-card strong,
.ff-section.ff-section .ff-pricing-cta strong {
	display: block;
	font-family: var(--ff-font-heading);
	font-size: clamp(1.6rem, 4vw, 2.75rem);
	line-height: 1.1;
}

.ff-section.ff-section .ff-dashboard-actions {
	grid-auto-rows: 1fr;
}

.ff-section.ff-section .ff-action-card {
	background: color-mix(in srgb, var(--ff-color-surface), transparent 4%);
	border: 1px solid var(--ff-color-border);
	border-radius: var(--ff-radius-lg);
	display: grid;
	gap: 0.85rem;
	grid-template-rows: auto auto 1fr;
	min-block-size: 210px;
	padding: clamp(1.15rem, 2.5vw, 1.6rem);
	transition: border-color 180ms ease, transform 180ms ease;
}

.ff-section.ff-section .ff-action-card:hover {
	border-color: color-mix(in srgb, var(--ff-color-accent), transparent 30%);
	transform: translateY(-3px);
}

.ff-section.ff-section .ff-action-card--primary {
	background:
		linear-gradient(140deg, color-mix(in srgb, var(--ff-color-primary), transparent 72%), transparent),
		var(--ff-color-surface);
}

.ff-section.ff-section .ff-action-card strong,
.ff-section.ff-section .ff-value-grid h3,
.ff-section.ff-section .ff-day-grid h3,
.ff-section.ff-section .ff-prompt-card h3,
.ff-section.ff-section .ff-account-slot h2,
.ff-section.ff-section .ff-course-module h3 {
	color: inherit;
	font-family: var(--ff-font-heading);
	font-size: clamp(1.1rem, 2vw, 1.45rem);
	line-height: 1.2;
	margin: 0;
}

.ff-section.ff-section .ff-action-card small,
.ff-section.ff-section .ff-value-grid p,
.ff-section.ff-section .ff-day-grid p,
.ff-section.ff-section .ff-prompt-card p,
.ff-section.ff-section .ff-account-placeholder,
.ff-section.ff-section .ff-funnel-card p,
.ff-section.ff-section .ff-optin-band p,
.ff-section.ff-section .ff-optin-card small {
	color: var(--ff-color-muted);
	line-height: 1.6;
	margin: 0;
}

.ff-section.ff-section .ff-grid--dashboard {
	align-items: stretch;
	grid-template-columns: 1fr;
}

.ff-section.ff-section .ff-dashboard-panel {
	display: grid;
	gap: 1rem;
}

.ff-section.ff-section .ff-panel-head {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	justify-content: space-between;
}

.ff-section.ff-section .ff-panel-head :where(h2, p) {
	margin: 0;
}

.ff-section.ff-section .ff-mini-lesson-list {
	display: grid;
	gap: 0.6rem;
}

.ff-section.ff-section .ff-mini-lesson-list a {
	background: rgba(3, 5, 8, 0.35);
	border: 1px solid var(--ff-color-border);
	border-radius: var(--ff-radius-md);
	color: var(--ff-color-muted);
	padding: 0.8rem 1rem;
}

.ff-section.ff-section .ff-prompt-section {
	display: grid;
	gap: 1rem;
}

.ff-section.ff-section .ff-prompt-grid {
	grid-auto-rows: 1fr;
}

.ff-section.ff-section .ff-prompt-card {
	display: grid;
	gap: 0.8rem;
	grid-template-rows: auto minmax(3.2em, auto) 1fr;
	height: 100%;
}

.ff-section.ff-section .ff-prompt-card--locked {
	border-color: color-mix(in srgb, var(--ff-color-accent), transparent 42%);
}

.ff-section.ff-section .ff-copy-block {
	background: #080b10;
	border: 1px solid var(--ff-ink-border-strong);
	border-radius: var(--ff-radius-lg);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
	color: #dce5f0;
	display: grid;
	overflow: hidden;
}

.ff-section.ff-section .ff-copy-block__bar {
	align-items: center;
	background: #111722;
	border-block-end: 1px solid var(--ff-ink-border);
	display: flex;
	gap: 0.75rem;
	justify-content: space-between;
	padding: 0.7rem 0.85rem;
}

.ff-section.ff-section .ff-copy-button {
	align-items: center;
	background: color-mix(in srgb, var(--ff-color-primary), transparent 78%);
	border: 1px solid color-mix(in srgb, var(--ff-color-primary), transparent 42%);
	border-radius: 999px;
	color: var(--ff-color-text);
	cursor: pointer;
	display: inline-flex;
	font-size: 0.74rem;
	font-weight: 800;
	min-block-size: 32px;
	padding: 0.45rem 0.7rem;
}

.ff-section.ff-section .ff-copy-button.is-copied {
	background: color-mix(in srgb, var(--ff-color-success), transparent 72%);
	border-color: color-mix(in srgb, var(--ff-color-success), transparent 30%);
}

.ff-section.ff-section .ff-copy-block textarea {
	background: transparent;
	border: 0;
	color: inherit;
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: 0.88rem;
	line-height: 1.6;
	margin: 0;
	max-block-size: 9.5rem;
	min-block-size: 7.5rem;
	outline: 0;
	overflow: auto;
	padding: 1rem;
	resize: vertical;
	white-space: pre-wrap;
	width: 100%;
}

.ff-section.ff-section .ff-account-grid {
	align-items: stretch;
}

.ff-section.ff-section .ff-account-slot {
	display: grid;
	gap: 0.85rem;
	grid-template-rows: auto auto 1fr;
	min-block-size: 210px;
}

.ff-section.ff-section .ff-account-slot > span {
	align-items: center;
	background: color-mix(in srgb, var(--ff-color-primary), transparent 82%);
	border: 1px solid color-mix(in srgb, var(--ff-color-primary), transparent 48%);
	border-radius: var(--ff-radius-sm);
	color: var(--ff-color-text);
	display: inline-flex;
	font-size: 0.76rem;
	font-weight: 850;
	height: 36px;
	justify-content: center;
	width: 36px;
}

.ff-section.ff-section .ff-account-slot--accent {
	border-color: color-mix(in srgb, var(--ff-color-accent), transparent 35%);
}

.ff-section.ff-section .ff-account-slot--danger {
	border-color: color-mix(in srgb, var(--ff-color-error), transparent 45%);
}

.ff-section.ff-section .ff-account-placeholder {
	align-items: center;
	background: rgba(3, 5, 8, 0.34);
	border: 1px dashed var(--ff-color-border);
	border-radius: var(--ff-radius-md);
	display: flex;
	min-block-size: 74px;
	padding: 1rem;
}

.ff-section.ff-section .ff-vimeo-frame {
	aspect-ratio: 16 / 9;
	background:
		linear-gradient(135deg, color-mix(in srgb, var(--ff-color-primary), #05070b 80%), #05070b),
		#05070b;
	border: 1px solid var(--ff-color-border);
	border-radius: var(--ff-radius-xl);
	box-shadow: 0 28px 90px rgba(0, 0, 0, 0.36);
	overflow: hidden;
	position: relative;
	width: 100%;
}

.ff-section.ff-section .ff-vimeo-frame iframe {
	border: 0;
	height: 100%;
	inset: 0;
	position: absolute;
	width: 100%;
}

.ff-section.ff-section .ff-grid--course-hero {
	grid-template-columns: 1fr;
	margin-block-end: clamp(2rem, 5vw, 4rem);
}

.ff-section.ff-section .ff-course-module-list {
	display: grid;
	gap: clamp(1rem, 3vw, 1.5rem);
}

.ff-section.ff-section .ff-course-module {
	background: color-mix(in srgb, var(--ff-color-surface), transparent 5%);
	border: 1px solid var(--ff-color-border);
	border-radius: var(--ff-radius-lg);
	display: grid;
	gap: 1rem;
	padding: clamp(1rem, 2.5vw, 1.5rem);
}

.ff-section.ff-section .ff-course-module__head {
	align-items: start;
	display: grid;
	gap: 1rem;
	grid-template-columns: auto 1fr;
}

.ff-section.ff-section .ff-course-lesson-grid {
	display: grid;
	gap: 0.6rem;
	grid-template-columns: 1fr;
}

.ff-section.ff-section .ff-course-lesson-link {
	background: rgba(3, 5, 8, 0.36);
	border: 1px solid var(--ff-color-border);
	border-radius: var(--ff-radius-md);
	display: grid;
	gap: 0.25rem 0.75rem;
	grid-template-columns: auto 1fr;
	padding: 0.9rem 1rem;
}

.ff-section.ff-section .ff-course-lesson-link span {
	color: var(--ff-color-accent);
	font-size: 0.75rem;
	font-weight: 850;
	grid-row: span 2;
}

.ff-section.ff-section .ff-course-lesson-link small {
	color: var(--ff-color-muted);
	line-height: 1.45;
}

.ff-section.ff-section .ff-lesson-layout {
	align-items: start;
	display: grid;
	gap: clamp(1rem, 3vw, 2rem);
	grid-template-columns: 1fr;
}

.ff-section.ff-section .ff-lesson-sidebar {
	min-inline-size: 0;
}

.ff-section.ff-section .ff-course-nav {
	background: color-mix(in srgb, var(--ff-color-surface), transparent 4%);
	border: 1px solid var(--ff-color-border);
	border-radius: var(--ff-radius-lg);
	display: grid;
	gap: 1rem;
	max-block-size: none;
	overflow: auto;
	padding: 1rem;
}

.ff-section.ff-section .ff-course-nav__header {
	display: grid;
	gap: 0.35rem;
	padding: 0.35rem;
}

.ff-section.ff-section .ff-course-nav__module {
	display: grid;
	gap: 0.45rem;
}

.ff-section.ff-section .ff-course-nav__module-link {
	color: var(--ff-color-text);
	font-weight: 850;
	text-decoration: none;
}

.ff-section.ff-section .ff-course-nav__lessons {
	display: grid;
	gap: 0.35rem;
}

.ff-section.ff-section .ff-course-nav__lesson {
	align-items: center;
	background: rgba(3, 5, 8, 0.32);
	border: 1px solid transparent;
	border-radius: var(--ff-radius-md);
	display: grid;
	font-size: 0.88rem;
	gap: 0.65rem;
	grid-template-columns: 48px 1fr;
	line-height: 1.35;
	padding: 0.7rem;
}

.ff-section.ff-section .ff-course-nav__lesson span {
	color: var(--ff-color-muted);
	font-size: 0.68rem;
	font-weight: 850;
	text-transform: uppercase;
}

.ff-section.ff-section .ff-course-nav__lesson.is-current {
	background: color-mix(in srgb, var(--ff-color-primary), transparent 82%);
	border-color: color-mix(in srgb, var(--ff-color-primary), transparent 38%);
	color: var(--ff-color-text);
}

.ff-section.ff-section .ff-lesson-main {
	display: grid;
	gap: clamp(1rem, 3vw, 1.5rem);
	min-inline-size: 0;
}

.ff-section.ff-section .ff-lesson-content {
	background: color-mix(in srgb, var(--ff-color-surface), transparent 5%);
	border: 1px solid var(--ff-color-border);
	border-radius: var(--ff-radius-lg);
	padding: clamp(1.25rem, 3vw, 2rem);
}

.ff-section.ff-section .ff-home-visual {
	aspect-ratio: 1;
	display: grid;
	gap: 0.8rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	position: relative;
}

.ff-section.ff-section .ff-home-visual__screen {
	background:
		radial-gradient(circle at 25% 20%, color-mix(in srgb, var(--ff-color-primary), transparent 45%), transparent 34%),
		linear-gradient(145deg, #0d1422, #05070b);
	border: 1px solid var(--ff-color-border);
	border-radius: var(--ff-radius-xl);
	display: grid;
	gap: 0.5rem;
	grid-column: 1 / -1;
	min-block-size: 220px;
	padding: 1.25rem;
	place-content: end start;
}

.ff-section.ff-section .ff-home-visual__screen span {
	background: linear-gradient(90deg, var(--ff-color-primary), var(--ff-color-accent));
	border-radius: 999px;
	display: block;
	height: 6px;
	width: 42%;
}

.ff-section.ff-section .ff-home-visual__card,
.ff-section.ff-section .ff-home-strips a,
.ff-section.ff-section .ff-value-grid article,
.ff-section.ff-section .ff-day-grid article {
	background: color-mix(in srgb, var(--ff-color-surface), transparent 5%);
	border: 1px solid var(--ff-color-border);
	border-radius: var(--ff-radius-md);
	color: var(--ff-color-text);
	display: grid;
	gap: 0.6rem;
	min-block-size: 130px;
	padding: 1rem;
}

.ff-section.ff-section .ff-home-strips {
	display: grid;
	gap: 0.8rem;
	grid-template-columns: 1fr;
}

.ff-section.ff-section .ff-optin-band {
	align-items: center;
	background:
		linear-gradient(100deg, color-mix(in srgb, var(--ff-color-primary), transparent 80%), color-mix(in srgb, var(--ff-color-accent), transparent 88%)),
		color-mix(in srgb, var(--ff-color-surface), transparent 5%);
	border: 1px solid var(--ff-color-border);
	border-radius: var(--ff-radius-xl);
	display: grid;
	gap: clamp(1rem, 3vw, 2rem);
	grid-template-columns: 1fr;
	padding: clamp(1.25rem, 4vw, 2.5rem);
}

.ff-section.ff-section .ff-optin-band h2 {
	color: inherit;
	font-family: var(--ff-font-heading);
	font-size: clamp(1.5rem, 3vw, 2.6rem);
	line-height: 1.1;
	margin: 0.35rem 0;
}

.ff-section.ff-section .ff-optin-card {
	display: grid;
	gap: 0.75rem;
}

.ff-section.ff-section .ff-optin-card input {
	background: rgba(3, 5, 8, 0.55);
	border: 1px solid var(--ff-color-border);
	border-radius: var(--ff-radius-md);
	color: var(--ff-color-text);
	min-block-size: 52px;
	padding: 0.9rem 1rem;
	width: 100%;
}

.ff-section.ff-section .ff-optin-card button {
	background: var(--ff-color-accent);
	border: 0;
	border-radius: var(--ff-button-radius);
	color: #071016;
	cursor: pointer;
	font-weight: 850;
	min-block-size: 52px;
	padding: 0.9rem 1rem;
}

.ff-section.ff-section .ff-funnel-card {
	display: grid;
	gap: 1rem;
	min-block-size: 320px;
	place-content: end start;
}

.ff-section.ff-section .ff-day-grid {
	grid-auto-rows: 1fr;
}

.ff-section.ff-section .ff-day-grid article {
	grid-template-rows: auto auto 1fr;
	height: 100%;
}

.ff-section.ff-section .ff-day-grid span {
	align-items: center;
	background: color-mix(in srgb, var(--ff-color-primary), transparent 82%);
	border: 1px solid color-mix(in srgb, var(--ff-color-primary), transparent 48%);
	border-radius: var(--ff-radius-sm);
	display: inline-flex;
	font-size: 0.75rem;
	font-weight: 850;
	height: 34px;
	justify-content: center;
	width: 34px;
}

.ff-section.ff-section .ff-value-grid {
	grid-auto-rows: 1fr;
}

.ff-section.ff-section .ff-value-grid article {
	height: 100%;
	min-block-size: 230px;
}

.ff-section.ff-section .ff-comparison {
	display: grid;
	gap: clamp(1.5rem, 4vw, 2.5rem);
}

.ff-section.ff-section .ff-compare-table {
	background: color-mix(in srgb, var(--ff-color-surface), transparent 5%);
	border: 1px solid var(--ff-color-border);
	border-radius: var(--ff-radius-lg);
	overflow: hidden;
}

.ff-section.ff-section .ff-compare-row {
	align-items: center;
	border-block-start: 1px solid var(--ff-color-border);
	display: grid;
	gap: 0.75rem;
	grid-template-columns: minmax(0, 1.5fr) minmax(54px, 0.45fr) minmax(54px, 0.45fr);
	padding: 0.95rem 1rem;
}

.ff-section.ff-section .ff-compare-row:first-child {
	border-block-start: 0;
}

.ff-section.ff-section .ff-compare-head {
	background: rgba(3, 5, 8, 0.32);
	color: var(--ff-color-text);
	font-weight: 850;
}

.ff-section.ff-section .ff-compare-row span {
	color: var(--ff-color-muted);
	line-height: 1.45;
}

.ff-section.ff-section .ff-compare-icon {
	align-items: center;
	border-radius: 50%;
	display: inline-flex;
	font-style: normal;
	font-weight: 950;
	height: 30px;
	justify-content: center;
	justify-self: center;
	width: 30px;
}

.ff-section.ff-section .ff-compare-icon--yes {
	background: color-mix(in srgb, var(--ff-color-success), transparent 78%);
	color: var(--ff-color-success);
}

.ff-section.ff-section .ff-compare-icon--yes::before {
	content: "\2713";
}

.ff-section.ff-section .ff-compare-icon--no {
	background: color-mix(in srgb, var(--ff-color-error), transparent 82%);
	color: var(--ff-color-error);
}

.ff-section.ff-section .ff-compare-icon--no::before {
	content: "\00D7";
}

.ff-section.ff-section .ff-pricing-cta {
	align-items: center;
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr;
}

@media (min-width: 700px) {
	.ff-section.ff-section :where(.ff-dashboard-actions, .ff-value-grid) {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.ff-section.ff-section :where(.ff-prompt-grid, .ff-account-grid, .ff-course-lesson-grid) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ff-section.ff-section .ff-day-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ff-section.ff-section .ff-home-strips {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 900px) {
	.ff-section.ff-section :where(.ff-dashboard-hero, .ff-home-hero, .ff-funnel-hero, .ff-login-layout, .ff-grid--course-hero) {
		grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
	}

	.ff-section.ff-section .ff-grid--dashboard {
		grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
	}

	.ff-section.ff-section .ff-optin-band {
		grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.85fr);
	}

	.ff-section.ff-section .ff-pricing-cta {
		grid-template-columns: 1fr auto;
	}

	.ff-section.ff-section .ff-lesson-layout {
		grid-template-columns: minmax(260px, 330px) minmax(0, 1fr);
	}

	.ff-section.ff-section .ff-lesson-sidebar {
		position: sticky;
		top: 24px;
	}

	.ff-section.ff-section .ff-course-nav {
		max-block-size: calc(100svh - 48px);
	}
}

@media (min-width: 1100px) {
	.ff-section.ff-section .ff-day-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

@media (max-width: 520px) {
	.ff-section.ff-section .ff-compare-row {
		font-size: 0.86rem;
		grid-template-columns: minmax(0, 1fr) 42px 42px;
		padding-inline: 0.75rem;
	}

	.ff-section.ff-section .ff-copy-block__bar {
		align-items: start;
		flex-direction: column;
	}

	.ff-section.ff-section .ff-course-module__head,
	.ff-section.ff-section .ff-course-lesson-link {
		grid-template-columns: 1fr;
	}

	.ff-section.ff-section .ff-course-lesson-link span {
		grid-row: auto;
	}
}

/* Dynamic lesson player v0.3.2. */
.ff-section.ff-section .ff-lesson-player {
	display: grid;
	gap: clamp(1.25rem, 3vw, 2.2rem);
}

.ff-section.ff-section .ff-lesson-player__header {
	align-items: start;
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr;
}

.ff-section.ff-section .ff-lesson-player__header .ff-section-title {
	font-size: clamp(2.15rem, 5vw, 4.7rem);
	max-inline-size: 15ch;
}

.ff-section.ff-section .ff-lesson-player__header .ff-section-copy {
	max-inline-size: 74ch;
}

.ff-section.ff-section .ff-progress--dynamic {
	margin: 0;
}

.ff-section.ff-section .ff-vimeo-frame--player {
	background: #05070b;
	border-radius: clamp(18px, 2vw, 28px);
	box-shadow: 0 24px 78px rgba(0, 0, 0, 0.34);
	margin: 0;
	min-block-size: 240px;
}

.ff-section.ff-section .ff-vimeo-frame--player::before,
.ff-section.ff-section .ff-vimeo-frame--player::after {
	content: none;
}

.ff-section.ff-section .ff-vimeo-frame--player iframe {
	background: #05070b;
	display: block;
}

.ff-section.ff-section .ff-video-stage .wp-block-cover__background,
.ff-section.ff-section .ff-video-stage .ff-play-button {
	display: none;
}

.ff-section.ff-section .ff-lesson-download {
	margin: 0;
}

.ff-section.ff-section .ff-button--disabled {
	cursor: not-allowed;
	opacity: 0.62;
	pointer-events: none;
}

.ff-section.ff-section .ff-rich-text {
	display: grid;
	gap: 0.85rem;
	white-space: normal;
}

.ff-section.ff-section .ff-rich-text p {
	margin: 0;
}

.ff-section.ff-section .ff-rich-text :where(h2, h3, h4, h5, h6) {
	color: var(--ff-color-text);
	line-height: 1.14;
	margin: 0;
}

.ff-section.ff-section .ff-rich-text h2 {
	font-size: clamp(1.35rem, 2.4vw, 2rem);
}

.ff-section.ff-section .ff-rich-text h3 {
	font-size: clamp(1.15rem, 2vw, 1.55rem);
}

.ff-section.ff-section .ff-rich-text :where(ul, ol) {
	display: grid;
	gap: 0.42rem;
	margin: 0;
	padding-inline-start: 1.25rem;
}

.ff-section.ff-section .ff-rich-text :where(li, blockquote) {
	color: var(--ff-color-muted);
	line-height: 1.7;
}

.ff-section.ff-section .ff-rich-text a {
	color: color-mix(in srgb, var(--ff-color-accent), #fff 12%);
	font-weight: 760;
	text-decoration: none;
}

.ff-section.ff-section .ff-rich-text a:hover {
	text-decoration: underline;
}

.ff-section.ff-section .ff-rich-text :where(code, pre) {
	background: rgba(255, 255, 255, 0.055);
	border: 1px solid var(--ff-color-border);
	border-radius: 10px;
	color: var(--ff-color-text);
}

.ff-section.ff-section .ff-rich-text code {
	padding: 0.1rem 0.32rem;
}

.ff-section.ff-section .ff-rich-text pre {
	margin: 0;
	overflow: auto;
	padding: 0.85rem;
}

.ff-section.ff-section .ff-rich-text blockquote {
	border-inline-start: 3px solid var(--ff-color-accent);
	margin: 0;
	padding-inline-start: 1rem;
}

.ff-section.ff-section .ff-lesson-download--note {
	grid-template-columns: 1fr;
}

.ff-section.ff-section .ff-lesson-download--note .ff-rich-text {
	font-size: clamp(0.95rem, 1.4vw, 1.08rem);
	line-height: 1.75;
}

.ff-section.ff-section .ff-lesson-main > .ff-copy-block {
	inline-size: 100%;
	margin: 0;
}

.ff-section.ff-section .ff-lesson-main > .ff-copy-block textarea {
	min-block-size: 8.5rem;
	max-block-size: 28rem;
}

.ff-section.ff-section .ff-course-nav {
	gap: 0.55rem;
	padding: 0.85rem;
}

.ff-section.ff-section .ff-course-nav__header {
	border-block-end: 1px solid var(--ff-color-border);
	margin-block-end: 0.25rem;
	padding: 0.25rem 0.25rem 0.8rem;
}

.ff-section.ff-section .ff-course-nav__header strong {
	color: var(--ff-color-text);
	font-size: 0.95rem;
	line-height: 1.25;
}

.ff-section.ff-section details.ff-course-nav__module {
	background: rgba(3, 5, 8, 0.24);
	border: 1px solid var(--ff-color-border);
	border-radius: var(--ff-radius-md);
	display: block;
	overflow: hidden;
}

.ff-section.ff-section details.ff-course-nav__module[open] {
	border-color: color-mix(in srgb, var(--ff-color-primary), transparent 42%);
}

.ff-section.ff-section .ff-course-nav__module-summary {
	align-items: center;
	cursor: pointer;
	display: grid;
	gap: 0.25rem 0.65rem;
	grid-template-columns: 34px 1fr auto;
	grid-template-rows: auto auto;
	list-style: none;
	padding: 0.72rem 0.78rem;
}

.ff-section.ff-section .ff-course-nav__module-summary::-webkit-details-marker {
	display: none;
}

.ff-section.ff-section .ff-course-nav__module-summary > span {
	align-items: center;
	background: color-mix(in srgb, var(--ff-color-primary), transparent 82%);
	border: 1px solid color-mix(in srgb, var(--ff-color-primary), transparent 55%);
	border-radius: 50%;
	color: var(--ff-color-text);
	display: inline-flex;
	font-size: 0.68rem;
	font-weight: 850;
	grid-row: 1 / span 2;
	height: 30px;
	justify-content: center;
	width: 30px;
}

.ff-section.ff-section .ff-course-nav__module-summary strong {
	color: var(--ff-color-text);
	font-size: 0.86rem;
	grid-column: 2;
	line-height: 1.25;
}

.ff-section.ff-section .ff-course-nav__module-summary small {
	color: var(--ff-color-muted);
	font-size: 0.68rem;
	grid-column: 2;
	line-height: 1.2;
	white-space: nowrap;
}

.ff-section.ff-section .ff-course-nav__module-summary::after {
	align-self: center;
	color: var(--ff-color-muted);
	content: "+";
	font-weight: 900;
	grid-column: 3;
	grid-row: 1 / span 2;
	justify-self: end;
}

.ff-section.ff-section details.ff-course-nav__module[open] .ff-course-nav__module-summary::after {
	content: "-";
}

.ff-section.ff-section details.ff-course-nav__module[open] .ff-course-nav__module-summary {
	border-block-end: 1px solid var(--ff-color-border);
}

.ff-section.ff-section .ff-course-nav__lessons {
	gap: 0.22rem;
	padding: 0.42rem;
}

.ff-section.ff-section .ff-course-nav__lesson {
	border-radius: calc(var(--ff-radius-md) - 2px);
	font-size: 0.8rem;
	gap: 0.5rem;
	grid-template-columns: 28px 1fr;
	padding: 0.52rem 0.58rem;
}

.ff-section.ff-section .ff-course-nav__lesson span {
	font-size: 0.62rem;
	text-align: center;
}

.ff-section.ff-section .ff-course-nav__lesson strong {
	color: inherit;
	font-size: inherit;
	font-weight: 700;
	line-height: 1.3;
}

@media (min-width: 900px) {
	.ff-section.ff-section .ff-lesson-player__header {
		align-items: end;
		grid-template-columns: minmax(0, 1fr) auto;
	}

	.ff-section.ff-section .ff-lesson-player__header .ff-chip {
		justify-self: end;
	}

	.ff-section.ff-section .ff-lesson-layout {
		grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
	}
}

@media (max-width: 640px) {
	.ff-section.ff-section .ff-lesson-player__header .ff-section-title {
		max-inline-size: 100%;
	}

	.ff-section.ff-section .ff-course-nav__module-summary {
		grid-template-columns: 30px 1fr auto;
	}
}

/* Conditional member dashboard and prompt base alternatives. */
.ff-section.ff-section .ff-member-overview,
.ff-section.ff-section .ff-prompt-base-alt {
	display: grid;
	gap: clamp(1.1rem, 3vw, 2rem);
}

.ff-section.ff-section .ff-member-hero,
.ff-section.ff-section .ff-prompt-alt-hero {
	align-items: end;
	background:
		linear-gradient(135deg, rgba(20, 92, 255, 0.18), transparent 46%),
		linear-gradient(315deg, rgba(255, 176, 0, 0.12), transparent 38%),
		rgba(9, 13, 20, 0.86);
	border: 1px solid color-mix(in srgb, var(--ff-color-border), transparent 18%);
	border-radius: clamp(18px, 2vw, 28px);
	box-shadow: 0 24px 80px rgba(0, 0, 0, 0.28);
	display: grid;
	gap: 1.25rem;
	overflow: hidden;
	padding: clamp(1.25rem, 4vw, 2.5rem);
	position: relative;
}

.ff-section.ff-section .ff-member-hero::after,
.ff-section.ff-section .ff-prompt-alt-hero::after {
	background: linear-gradient(90deg, var(--ff-color-primary), var(--ff-color-accent));
	block-size: 3px;
	border-radius: 999px;
	content: "";
	inline-size: min(220px, 42%);
	inset-block-start: 0;
	inset-inline-start: clamp(1.25rem, 4vw, 2.5rem);
	position: absolute;
}

.ff-section.ff-section .ff-member-hero__meta {
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 18px;
	display: grid;
	gap: 0.28rem;
	min-inline-size: min(100%, 260px);
	padding: 1rem;
}

.ff-section.ff-section .ff-member-hero__meta span,
.ff-section.ff-section .ff-member-hero__meta small {
	color: var(--ff-color-muted);
	font-size: 0.78rem;
}

.ff-section.ff-section .ff-member-hero__meta strong {
	color: var(--ff-color-text);
	font-size: 1.15rem;
}

.ff-section.ff-section .ff-member-quick-grid {
	display: grid;
	gap: 0.9rem;
	grid-template-columns: 1fr;
}

.ff-section.ff-section .ff-member-tile,
.ff-section.ff-section .ff-upgrade-showcase,
.ff-section.ff-section .ff-course-command,
.ff-section.ff-section .ff-prompt-widget,
.ff-section.ff-section .ff-prompt-category {
	background: linear-gradient(180deg, rgba(20, 26, 37, 0.94), rgba(8, 12, 18, 0.96));
	border: 1px solid color-mix(in srgb, var(--ff-color-border), transparent 8%);
	border-radius: clamp(16px, 2vw, 24px);
	box-shadow: 0 18px 58px rgba(0, 0, 0, 0.24);
}

.ff-section.ff-section .ff-member-tile {
	color: var(--ff-color-text);
	display: grid;
	gap: 0.55rem;
	min-block-size: 100%;
	padding: clamp(1rem, 2.4vw, 1.45rem);
	text-decoration: none;
	transition: border-color 180ms ease, transform 180ms ease;
}

.ff-section.ff-section .ff-member-tile:hover,
.ff-section.ff-section .ff-prompt-category-pills a:hover,
.ff-section.ff-section .ff-mini-lessons a:hover {
	border-color: color-mix(in srgb, var(--ff-color-primary), transparent 35%);
	transform: translateY(-2px);
}

.ff-section.ff-section .ff-member-tile--primary {
	background:
		linear-gradient(135deg, rgba(20, 92, 255, 0.22), transparent 48%),
		linear-gradient(180deg, rgba(20, 26, 37, 0.96), rgba(8, 12, 18, 0.98));
}

.ff-section.ff-section .ff-member-tile--secondary {
	background:
		linear-gradient(135deg, rgba(255, 176, 0, 0.1), transparent 42%),
		linear-gradient(180deg, rgba(20, 26, 37, 0.94), rgba(8, 12, 18, 0.96));
}

.ff-section.ff-section .ff-member-tile small,
.ff-section.ff-section .ff-member-tile p {
	color: var(--ff-color-muted);
	margin: 0;
}

.ff-section.ff-section .ff-member-tile strong {
	font-size: clamp(1.08rem, 1.8vw, 1.35rem);
	line-height: 1.15;
}

.ff-section.ff-section .ff-member-icon {
	align-items: center;
	background: color-mix(in srgb, var(--ff-color-primary), transparent 82%);
	border: 1px solid color-mix(in srgb, var(--ff-color-primary), transparent 48%);
	border-radius: 14px;
	color: var(--ff-color-text);
	display: inline-flex;
	font-size: 0.72rem;
	font-weight: 850;
	block-size: 42px;
	inline-size: 42px;
	justify-content: center;
}

.ff-section.ff-section .ff-upgrade-showcase,
.ff-section.ff-section .ff-course-command {
	display: grid;
	gap: clamp(1rem, 3vw, 1.6rem);
	padding: clamp(1rem, 2.5vw, 1.4rem);
}

.ff-section.ff-section .ff-upgrade-showcase__content {
	align-content: center;
	display: grid;
	gap: 1rem;
	padding: clamp(0.2rem, 1.5vw, 1rem);
}

.ff-section.ff-section .ff-upgrade-showcase__content h2,
.ff-section.ff-section .ff-course-command__map h2 {
	color: var(--ff-color-text);
	font-size: clamp(1.65rem, 3vw, 2.5rem);
	line-height: 1.05;
	margin: 0;
}

.ff-section.ff-section .ff-upgrade-showcase__content p {
	color: var(--ff-color-muted);
	margin: 0;
	max-inline-size: 62ch;
}

.ff-section.ff-section .ff-course-command__cover {
	aspect-ratio: 16 / 9;
	border: 1px solid color-mix(in srgb, var(--ff-color-border), transparent 6%);
	border-radius: clamp(16px, 2vw, 24px);
	overflow: hidden;
	position: relative;
}

.ff-section.ff-section .ff-course-command__cover img {
	block-size: 100%;
	display: block;
	inline-size: 100%;
	object-fit: cover;
}

.ff-section.ff-section .ff-course-command__cover::after {
	background: linear-gradient(180deg, transparent 35%, rgba(4, 6, 10, 0.86));
	content: "";
	inset: 0;
	position: absolute;
}

.ff-section.ff-section .ff-course-command__caption {
	inset-block-end: 0;
	inset-inline: 0;
	padding: clamp(1rem, 3vw, 1.5rem);
	position: absolute;
	z-index: 1;
}

.ff-section.ff-section .ff-course-command__caption h2 {
	color: #fff;
	font-size: clamp(1.55rem, 3vw, 2.6rem);
	line-height: 1.05;
	margin: 0;
	max-inline-size: 12ch;
}

.ff-section.ff-section .ff-course-command__map {
	display: grid;
	gap: 1rem;
}

.ff-section.ff-section .ff-module-stack {
	display: grid;
	gap: 0.55rem;
}

.ff-section.ff-section .ff-mini-module {
	background: rgba(255, 255, 255, 0.035);
	border: 1px solid color-mix(in srgb, var(--ff-color-border), transparent 10%);
	border-radius: 16px;
	overflow: hidden;
}

.ff-section.ff-section .ff-mini-module summary {
	align-items: center;
	cursor: pointer;
	display: grid;
	gap: 0.3rem 0.7rem;
	grid-template-columns: 38px minmax(0, 1fr) auto;
	list-style: none;
	padding: 0.85rem;
}

.ff-section.ff-section .ff-mini-module summary::-webkit-details-marker {
	display: none;
}

.ff-section.ff-section .ff-mini-module summary span {
	align-items: center;
	background: color-mix(in srgb, var(--ff-color-primary), transparent 82%);
	border: 1px solid color-mix(in srgb, var(--ff-color-primary), transparent 45%);
	border-radius: 50%;
	color: var(--ff-color-text);
	display: inline-flex;
	font-size: 0.72rem;
	font-weight: 850;
	block-size: 34px;
	justify-content: center;
	inline-size: 34px;
}

.ff-section.ff-section .ff-mini-module summary strong {
	color: var(--ff-color-text);
	font-size: 0.96rem;
	line-height: 1.2;
}

.ff-section.ff-section .ff-mini-module summary small {
	color: var(--ff-color-muted);
	font-size: 0.74rem;
	white-space: nowrap;
}

.ff-section.ff-section .ff-mini-lessons {
	border-block-start: 1px solid var(--ff-color-border);
	display: grid;
	gap: 0.24rem;
	padding: 0.5rem;
}

.ff-section.ff-section .ff-mini-lessons a {
	border: 1px solid transparent;
	border-radius: 12px;
	color: color-mix(in srgb, var(--ff-color-text), transparent 8%);
	font-size: 0.86rem;
	line-height: 1.3;
	padding: 0.58rem 0.7rem;
	text-decoration: none;
	transition: background-color 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.ff-section.ff-section .ff-mini-lessons a:hover {
	background: rgba(255, 255, 255, 0.045);
}

.ff-section.ff-section .ff-prompt-alt-hero {
	align-items: start;
}

.ff-section.ff-section .ff-prompt-category-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
}

.ff-section.ff-section .ff-prompt-category-pills a {
	background: rgba(255, 255, 255, 0.045);
	border: 1px solid color-mix(in srgb, var(--ff-color-border), transparent 12%);
	border-radius: 999px;
	color: var(--ff-color-text);
	font-size: 0.85rem;
	font-weight: 760;
	padding: 0.65rem 0.9rem;
	text-decoration: none;
	transition: border-color 180ms ease, transform 180ms ease;
}

.ff-section.ff-section .ff-prompt-category-stack {
	display: grid;
	gap: 0.9rem;
}

.ff-section.ff-section .ff-prompt-category {
	overflow: hidden;
}

.ff-section.ff-section .ff-prompt-category > summary {
	align-items: center;
	cursor: pointer;
	display: grid;
	gap: 0.35rem 0.8rem;
	grid-template-columns: 46px minmax(0, 1fr);
	list-style: none;
	padding: clamp(1rem, 2.4vw, 1.25rem);
}

.ff-section.ff-section .ff-prompt-category > summary::-webkit-details-marker {
	display: none;
}

.ff-section.ff-section .ff-prompt-category > summary strong {
	color: var(--ff-color-text);
	font-size: clamp(1.15rem, 2vw, 1.45rem);
	line-height: 1.15;
}

.ff-section.ff-section .ff-prompt-category > summary small {
	color: var(--ff-color-muted);
	grid-column: 2;
}

.ff-section.ff-section .ff-prompt-widget-grid {
	border-block-start: 1px solid var(--ff-color-border);
	display: grid;
	gap: 0.9rem;
	padding: clamp(1rem, 2.4vw, 1.25rem);
}

.ff-section.ff-section .ff-prompt-widget {
	display: grid;
	gap: 1rem;
	min-block-size: 100%;
	padding: clamp(1rem, 2.4vw, 1.25rem);
}

.ff-section.ff-section .ff-prompt-widget--pro {
	background:
		linear-gradient(135deg, rgba(255, 176, 0, 0.1), transparent 46%),
		linear-gradient(180deg, rgba(20, 26, 37, 0.94), rgba(8, 12, 18, 0.98));
}

.ff-section.ff-section .ff-prompt-widget__head {
	align-items: start;
	display: grid;
	gap: 0.55rem;
}

.ff-section.ff-section .ff-prompt-widget h2 {
	color: var(--ff-color-text);
	font-size: clamp(1.14rem, 1.9vw, 1.45rem);
	line-height: 1.14;
	margin: 0;
}

.ff-section.ff-section .ff-prompt-widget p {
	color: var(--ff-color-muted);
	line-height: 1.65;
	margin: 0;
}

.ff-section.ff-section .ff-prompt-widget a:not(.ff-button) {
	color: color-mix(in srgb, var(--ff-color-accent), #fff 12%);
	font-weight: 760;
	text-decoration: none;
}

.ff-section.ff-section .ff-prompt-widget a:not(.ff-button):hover {
	text-decoration: underline;
}

.ff-section.ff-section .ff-access-pill {
	border-radius: 999px;
	display: inline-flex;
	font-size: 0.68rem;
	font-weight: 850;
	inline-size: fit-content;
	letter-spacing: 0.07em;
	padding: 0.32rem 0.55rem;
	text-transform: uppercase;
}

.ff-section.ff-section .ff-access-pill--free {
	background: color-mix(in srgb, var(--ff-color-primary), transparent 84%);
	border: 1px solid color-mix(in srgb, var(--ff-color-primary), transparent 50%);
	color: color-mix(in srgb, var(--ff-color-text), var(--ff-color-primary) 18%);
}

.ff-section.ff-section .ff-access-pill--pro {
	background: color-mix(in srgb, var(--ff-color-accent), transparent 84%);
	border: 1px solid color-mix(in srgb, var(--ff-color-accent), transparent 48%);
	color: color-mix(in srgb, var(--ff-color-accent), #fff 28%);
}

.ff-section.ff-section .ff-prompt-widget .ff-copy-block {
	margin: 0;
}

.ff-section.ff-section .ff-prompt-widget .ff-copy-block textarea {
	min-block-size: 9.5rem;
}

.ff-section.ff-section .ff-locked-prompt {
	align-items: center;
	background:
		linear-gradient(135deg, rgba(255, 176, 0, 0.16), transparent 46%),
		rgba(255, 255, 255, 0.045);
	border: 1px solid color-mix(in srgb, var(--ff-color-accent), transparent 50%);
	border-radius: 18px;
	display: grid;
	gap: 0.85rem;
	justify-items: start;
	min-block-size: 9.5rem;
	padding: 1rem;
}

.ff-section.ff-section .ff-crown {
	align-items: center;
	background: color-mix(in srgb, var(--ff-color-accent), transparent 78%);
	border: 1px solid color-mix(in srgb, var(--ff-color-accent), transparent 42%);
	border-radius: 50%;
	color: var(--ff-color-accent);
	display: inline-flex;
	font-size: 1.35rem;
	block-size: 44px;
	inline-size: 44px;
	justify-content: center;
}

@media (min-width: 760px) {
	.ff-section.ff-section .ff-member-hero,
	.ff-section.ff-section .ff-prompt-alt-hero {
		grid-template-columns: minmax(0, 1fr) auto;
	}

	.ff-section.ff-section .ff-member-quick-grid {
		grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
	}

	.ff-section.ff-section .ff-prompt-widget-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1020px) {
	.ff-section.ff-section .ff-upgrade-showcase,
	.ff-section.ff-section .ff-course-command {
		grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.95fr);
	}

	.ff-section.ff-section .ff-course-command__map {
		align-self: stretch;
	}
}

@media (max-width: 520px) {
	.ff-section.ff-section .ff-mini-module summary {
		grid-template-columns: 34px minmax(0, 1fr);
	}

	.ff-section.ff-section .ff-mini-module summary small {
		grid-column: 2;
		white-space: normal;
	}

	.ff-section.ff-section .ff-prompt-category > summary {
		grid-template-columns: 42px minmax(0, 1fr);
	}
}

@media (prefers-reduced-motion: reduce) {
	.ff-section.ff-section .ff-member-tile,
	.ff-section.ff-section .ff-prompt-category-pills a,
	.ff-section.ff-section .ff-mini-lessons a {
		transition: none;
	}

	.ff-section.ff-section .ff-member-tile:hover,
	.ff-section.ff-section .ff-prompt-category-pills a:hover,
	.ff-section.ff-section .ff-mini-lessons a:hover {
		transform: none;
	}
}
