/* =========================================================================
   CLASSTRONAUTS.SPACE — Design System (handoff-locked)
   Dark "space-console" foundation, character-warm accents, sharp editorial
   radii, flat solid buttons, Space Grotesk mission kickers. Mobile-first.
   ========================================================================= */

:root {
	/* Foundation */
	--cs-bg: #0B0F1A;
	--cs-panel: #0D121E;
	--cs-panel-2: #16203A;

	/* Text */
	--cs-ink: #F4F8FF;
	--cs-body: #AEBAD0;
	--cs-muted: #9AA6C0;
	--cs-faint: #7C89A4;
	--cs-dim: #5E6B86;

	/* Section accents (each section owns one) */
	--cs-cyan: #6FE3FF;       /* Watch + links + logo */
	--cs-cyan-tint: #7FD8F0;  /* eyebrows on dark */
	--cs-amber: #F6B24B;      /* primary CTAs + Books */
	--cs-violet: #C77DFF;     /* Learn */
	--cs-pink: #FF8FA3;       /* Characters */
	--cs-mint: #34D399;       /* Play / downloads / success */
	--cs-peri: #7AA8FF;       /* Parents / safety */

	/* Translucent surfaces over the navy */
	--cs-card-fill: rgba(255, 255, 255, 0.035);
	--cs-card-line: rgba(255, 255, 255, 0.08);
	--cs-card-line-hover: rgba(111, 227, 255, 0.32);
	--cs-inset: rgba(13, 18, 30, 0.55);
	--cs-line: rgba(255, 255, 255, 0.07);

	/* Sharp, editorial radius scale — NO pills */
	--cs-r-chip: 2px;
	--cs-r: 3px;
	--cs-r-tile: 4px;
	--cs-r-card: 5px;
	--cs-r-panel: 8px;

	--cs-content: 1240px;
	--cs-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--cs-grad-line: linear-gradient(90deg, var(--cs-cyan), var(--cs-amber));
	--cs-shadow-card: 0 16px 34px rgba(0, 0, 0, 0.34);
	--cs-shadow-art: 0 30px 80px rgba(0, 0, 0, 0.5);
}

/* ----------------------------------------------------------------------- */
/* Base                                                                    */
/* ----------------------------------------------------------------------- */
html { scroll-behavior: smooth; }
html, body { overflow-x: hidden; max-width: 100%; }
h1, h2, h3, h4 { overflow-wrap: break-word; }
.wp-block-buttons.is-layout-flex { flex-wrap: wrap; }

body,
.wp-site-blocks {
	background-color: var(--cs-bg);
	color: var(--cs-ink);
	font-family: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	font-size: 1.0625rem;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
}
body { background-color: var(--cs-bg); position: relative; }

/* Fixed starfield behind everything. */
body::before {
	content: "";
	position: fixed;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background-image:
		radial-gradient(1.6px 1.6px at 12% 16%, #fff, transparent),
		radial-gradient(1.4px 1.4px at 76% 12%, rgba(255, 255, 255, 0.9), transparent),
		radial-gradient(1px 1px at 28% 42%, rgba(255, 255, 255, 0.65), transparent),
		radial-gradient(1px 1px at 64% 36%, rgba(255, 255, 255, 0.6), transparent),
		radial-gradient(1.3px 1.3px at 88% 58%, #fff, transparent),
		radial-gradient(1px 1px at 18% 72%, rgba(255, 255, 255, 0.6), transparent),
		radial-gradient(1px 1px at 44% 86%, rgba(255, 255, 255, 0.5), transparent),
		radial-gradient(1.4px 1.4px at 92% 82%, rgba(255, 255, 255, 0.85), transparent),
		radial-gradient(1px 1px at 6% 52%, rgba(255, 255, 255, 0.55), transparent),
		radial-gradient(1.2px 1.2px at 36% 62%, rgba(255, 255, 255, 0.6), transparent);
	background-size: 760px 760px;
	opacity: 0.7;
}

/* Two slow-pulsing nebula glows — amber top-right, cyan bottom-left. */
body::after,
html::before {
	content: "";
	position: fixed;
	z-index: 0;
	pointer-events: none;
	border-radius: 50%;
}
body::after {
	top: -200px; right: -180px;
	width: 640px; height: 640px;
	background: radial-gradient(circle at 50% 50%, rgba(246, 178, 75, 0.20), rgba(246, 178, 75, 0.04) 46%, transparent 68%);
	animation: cs-glow 9s ease-in-out infinite;
}
html::before {
	bottom: -240px; left: -220px;
	width: 680px; height: 680px;
	background: radial-gradient(circle at 50% 50%, rgba(111, 227, 255, 0.16), rgba(111, 227, 255, 0.03) 46%, transparent 68%);
	animation: cs-glow 12s ease-in-out infinite;
}
@keyframes cs-glow { 0%, 100% { opacity: 0.4; } 50% { opacity: 0.85; } }

/* Keep all real content above the ambiance. */
#wrapper,
.site-wrapper,
.wp-site-blocks { position: relative; z-index: 1; }

/* Kill default light surfaces so the dark foundation shows through. */
#wrapper,
#inner-wrap,
.content-wrap,
.content-container,
.content-bg,
.content-style-unboxed .content-bg,
article.entry,
.entry-content-wrap,
.single-content,
.hentry,
.wp-block-post-content { background: transparent !important; box-shadow: none !important; }

/* Article (single post) readable column. */
.single .entry-content.single-content {
	max-width: 820px;
	margin-inline: auto;
}
.single .entry-content.single-content .alignfull {
	width: auto;
	margin-inline: 0;
}
.single .entry-title { font-size: clamp(2.2rem, 1.6rem + 2.4vw, 2.875rem); } /* ~46px */
.single .entry-content h2 { font-size: clamp(1.45rem, 1.2rem + 1vw, 1.7rem); } /* ~27px article sub-head */

/* Headings */
h1, h2, h3, h4, h5, h6,
.entry-title, .entry-hero h1 {
	font-family: "Fredoka", ui-rounded, "Quicksand", system-ui, sans-serif;
	color: var(--cs-ink);
	font-weight: 600;
	line-height: 1.06;
	letter-spacing: -0.015em;
}
h1 { font-size: clamp(2.6rem, 1.5rem + 4.4vw, 4.125rem); } /* ~66px */
h2 { font-size: clamp(1.9rem, 1.5rem + 1.8vw, 2.375rem); } /* ~38px */
h3 { font-size: clamp(1.2rem, 1.1rem + 0.5vw, 1.3rem); }   /* card titles */
h4 { font-size: 1.1rem; }

p, li { color: var(--cs-ink); }
.cs-section p, .cs-card p, .cs-hero p { color: var(--cs-body); }
a { color: var(--cs-cyan); text-decoration-thickness: 1px; text-underline-offset: 3px; transition: color 0.2s var(--cs-ease); }
a:hover { color: var(--cs-mint); }

::selection { background: rgba(111, 227, 255, 0.3); color: #fff; }

/* ----------------------------------------------------------------------- */
/* Header (Kadence)                                                        */
/* ----------------------------------------------------------------------- */
.site-header-wrap,
.site-header,
#masthead,
.site-header-row-container,
.site-header-row-container-inner,
.site-main-header-wrap,
.kadence-sticky-header.item-is-fixed:not(.item-at-start) {
	background: transparent !important;
}
#masthead {
	background-color: rgba(11, 15, 26, 0.74) !important;
	-webkit-backdrop-filter: blur(16px);
	backdrop-filter: blur(16px);
	border-bottom: 1px solid var(--cs-line);
}
.site-branding .site-title,
.site-branding .site-title a { color: var(--cs-ink) !important; font-family: "Fredoka", system-ui, sans-serif; font-weight: 600; letter-spacing: 0.2px; }
.site-branding .site-description { color: var(--cs-body) !important; }

/* Primary nav links */
.header-navigation .menu-container > ul > li > a,
.header-navigation a.menu-link,
#navigation .menu-item a {
	position: relative;
	color: #C7D2E4 !important;
	font-family: "Nunito", system-ui, sans-serif;
	font-weight: 700;
	font-size: 15px;
	border-radius: var(--cs-r);
}
.header-navigation .menu-container > ul > li > a:hover { background: rgba(255, 255, 255, 0.06); color: var(--cs-ink) !important; }
/* Active link: white + 2px cyan→amber underline bar */
.header-navigation li.current-menu-item > a,
.header-navigation li.current-menu-ancestor > a { color: var(--cs-ink) !important; }
.header-navigation li.current-menu-item > a::after,
.header-navigation li.current-menu-ancestor > a::after {
	content: "";
	position: absolute;
	left: 13px; right: 13px; bottom: 4px;
	height: 2px; border-radius: 2px;
	background: var(--cs-grad-line);
}
.mobile-toggle-open-container .menu-toggle-open,
.menu-toggle-open .kadence-svg-iconset { color: var(--cs-ink) !important; }
.mobile-navigation a { color: var(--cs-ink) !important; }

/* Header CTA pushed onto the primary menu */
.header-navigation li.cs-nav-cta { display: flex; align-items: center; }
.header-navigation li.cs-nav-cta > a,
.mobile-navigation li.cs-nav-cta > a {
	background: var(--cs-amber);
	color: #0B0F1A !important;
	font-family: "Fredoka", system-ui, sans-serif;
	font-weight: 600;
	border-radius: var(--cs-r);
	padding: 10px 16px !important;
	line-height: 1;
	transition: filter 0.15s var(--cs-ease);
}
.header-navigation li.cs-nav-cta > a:hover { filter: brightness(1.07); background: var(--cs-amber); }
.header-navigation li.cs-nav-cta > a::after { display: none; }

/* ----------------------------------------------------------------------- */
/* Layout helpers / sections                                               */
/* ----------------------------------------------------------------------- */
.cs-section { padding-block: clamp(2.6rem, 5vw, 3.4rem); padding-inline: clamp(1.15rem, 4vw, 1.5rem); }
.cs-section.cs-section--tight { padding-block: clamp(1.8rem, 3.5vw, 2.6rem); }

/* Full-bleed surface variants */
.cs-band { background: linear-gradient(180deg, var(--cs-panel) 0%, var(--cs-bg) 100%); }
.cs-band--navy { background: rgba(13, 18, 30, 0.45); }
.cs-band--surface { background: rgba(22, 32, 58, 0.4); }
.cs-band--glow {
	background:
		radial-gradient(90% 120% at 50% -20%, rgba(199, 125, 255, 0.12) 0%, rgba(11, 15, 26, 0) 60%);
	border-block: 1px solid var(--cs-line);
}

/* Eyebrow / kicker — the mission-console signature */
/* display:block so it follows the constrained-layout flow (and text-align)
   like the heading beneath it; inline-block ignores the auto margins WP adds,
   leaving the eyebrow stranded at the section edge / un-centered. */
.cs-eyebrow {
	display: block;
	font-family: "Space Grotesk", ui-monospace, monospace;
	font-weight: 500;
	font-size: 0.78rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--cs-cyan-tint);
	margin-bottom: 0.65rem !important;
}
.cs-eyebrow--cyan { color: var(--cs-cyan-tint); }
.cs-eyebrow--amber, .cs-eyebrow--gold { color: var(--cs-amber); }
.cs-eyebrow--violet, .cs-eyebrow--purple { color: var(--cs-violet); }
.cs-eyebrow--pink, .cs-eyebrow--coral { color: var(--cs-pink); }
.cs-eyebrow--mint, .cs-eyebrow--green { color: var(--cs-mint); }
.cs-eyebrow--peri, .cs-eyebrow--periwinkle { color: var(--cs-peri); }

/* Eyebrow flanked by hairline rules (centered hero) */
.cs-eyebrow--rules { display: inline-flex; align-items: center; gap: 14px; }
.cs-eyebrow--rules::before,
.cs-eyebrow--rules::after { content: ""; width: 30px; height: 1px; background: var(--cs-cyan); }

.cs-lead { font-size: clamp(1.1rem, 1rem + 0.55vw, 1.22rem); color: var(--cs-body); line-height: 1.6; }
.cs-muted { color: var(--cs-body); }
.cs-center { text-align: center; }

/* Accent-coloured word in a headline (solid, not gradient) */
.cs-gradient-text { color: var(--cs-cyan); -webkit-text-fill-color: currentColor; background: none; }
.cs-accent-cyan { color: var(--cs-cyan); }
.cs-accent-amber { color: var(--cs-amber); }
.cs-accent-violet { color: var(--cs-violet); }
.cs-accent-pink { color: var(--cs-pink); }
.cs-accent-mint { color: var(--cs-mint); }
.cs-accent-peri { color: var(--cs-peri); }

.cs-rule { height: 1px; background: var(--cs-line); border: 0; margin-block: 2rem; }

/* Chip row (categories: All / Episodes / Songs …) */
.cs-chips { display: flex; flex-wrap: wrap; gap: 9px; justify-content: center; }
.cs-chip {
	font-family: "Space Grotesk", ui-monospace, monospace;
	font-size: 0.8rem; font-weight: 600; letter-spacing: 0.02em;
	color: #C7D2E4;
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.1);
	padding: 0.55rem 1rem;
	border-radius: var(--cs-r-chip);
}

/* ----------------------------------------------------------------------- */
/* Buttons — flat, solid, no glow                                          */
/* ----------------------------------------------------------------------- */
.wp-block-button__link {
	font-family: "Fredoka", system-ui, sans-serif;
	font-weight: 600;
	border-radius: var(--cs-r);
	padding: 0.85rem 1.5rem;
	box-shadow: none !important;
	transition: filter 0.15s var(--cs-ease), background 0.15s var(--cs-ease), border-color 0.15s var(--cs-ease);
}
/* Primary = solid amber */
.wp-block-button.is-style-cs-primary > .wp-block-button__link,
.wp-block-button.is-style-fill:not(.is-style-cs-secondary):not(.is-style-outline) > .wp-block-button__link {
	background: var(--cs-amber);
	color: #0B0F1A;
	border: 0;
}
.wp-block-button.is-style-cs-primary > .wp-block-button__link:hover,
.wp-block-button.is-style-fill:not(.is-style-cs-secondary):not(.is-style-outline) > .wp-block-button__link:hover {
	filter: brightness(1.07);
	color: #0B0F1A;
}
/* Secondary = translucent + cyan border */
.wp-block-button.is-style-cs-secondary > .wp-block-button__link,
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: rgba(255, 255, 255, 0.05);
	color: #EAF2FF;
	border: 1px solid rgba(111, 227, 255, 0.4);
}
.wp-block-button.is-style-cs-secondary > .wp-block-button__link:hover,
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: rgba(111, 227, 255, 0.1);
	color: #EAF2FF;
}
.wp-block-button.cs-btn-ghost > .wp-block-button__link {
	background: transparent;
	color: var(--cs-ink);
	border: 1px solid var(--cs-card-line);
}
/* Mint download buttons (inside download cards or .cs-btn-download) */
.cs-download .wp-block-button > .wp-block-button__link,
.wp-block-button.cs-btn-download > .wp-block-button__link {
	background: var(--cs-mint);
	color: #06231A;
	border: 0;
}
.cs-download .wp-block-button > .wp-block-button__link:hover,
.wp-block-button.cs-btn-download > .wp-block-button__link:hover { filter: brightness(1.07); color: #06231A; }

/* ----------------------------------------------------------------------- */
/* Cards + grids — translucent white over navy                             */
/* ----------------------------------------------------------------------- */
.cs-card,
.wp-block-group.is-style-cs-card {
	background: var(--cs-card-fill);
	border: 1px solid var(--cs-card-line);
	border-radius: var(--cs-r-card);
	padding: 1.25rem !important;
	box-shadow: none;
	height: 100%;
	transition: transform 0.15s var(--cs-ease), box-shadow 0.2s var(--cs-ease), border-color 0.2s var(--cs-ease);
}
.cs-card:hover,
.wp-block-group.is-style-cs-card:hover {
	transform: translateY(-4px);
	border-color: var(--cs-card-line-hover);
	box-shadow: var(--cs-shadow-card);
}
.cs-card h3, .cs-card h4 { margin-top: 0.4rem; }
.cs-card p { color: var(--cs-muted); }
.cs-card a:not(.wp-block-button__link) { font-weight: 700; }

/* Card grid: equal-height columns */
.cs-card-grid.wp-block-columns { gap: 1.1rem; align-items: stretch; }
.cs-card-grid .wp-block-column { display: flex; }
.cs-card-grid .wp-block-column > * { width: 100%; }

/* Emoji / icon tile — squared accent-tinted placeholder art */
.cs-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: var(--cs-r-tile);
	font-size: 1.6rem;
	line-height: 1;
	background: rgba(111, 227, 255, 0.1);
	border: 1px solid rgba(111, 227, 255, 0.28);
	margin-bottom: 0.6rem;
}
.cs-icon--gold, .cs-icon--amber { background: rgba(246, 178, 75, 0.12); border-color: rgba(246, 178, 75, 0.3); }
.cs-icon--violet { background: rgba(199, 125, 255, 0.12); border-color: rgba(199, 125, 255, 0.3); }
.cs-icon--pink { background: rgba(255, 143, 163, 0.12); border-color: rgba(255, 143, 163, 0.3); }
.cs-icon--mint { background: rgba(52, 211, 153, 0.12); border-color: rgba(52, 211, 153, 0.3); }
.cs-icon--peri { background: rgba(122, 168, 255, 0.12); border-color: rgba(122, 168, 255, 0.3); }

/* Tag chips — squared, solid accent fill, dark text */
.cs-pill {
	display: inline-block;
	font-family: "Space Grotesk", ui-monospace, monospace;
	font-size: 0.66rem !important;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #0B0F1A;
	background: var(--cs-cyan);
	border: 0;
	border-radius: var(--cs-r-chip);
	padding: 0.28rem 0.6rem !important;
	margin: 0 0.3rem 0.3rem 0 !important;
	line-height: 1.3;
}
.cs-pill--gold, .cs-pill--amber { background: var(--cs-amber); }
.cs-pill--coral, .cs-pill--pink { background: var(--cs-pink); }
.cs-pill--green, .cs-pill--mint { background: var(--cs-mint); }
.cs-pill--purple, .cs-pill--violet { background: var(--cs-violet); }
.cs-pill--peri { background: var(--cs-peri); }

/* ----------------------------------------------------------------------- */
/* Hero (Direction B — centered, cinematic)                                */
/* ----------------------------------------------------------------------- */
.cs-hero {
	position: relative;
	overflow: hidden;
	text-align: center;
	padding-block: clamp(2.8rem, 6vw, 4rem) !important;
	padding-inline: clamp(1.15rem, 4vw, 1.5rem);
}
.cs-hero .cs-hero__art {
	position: relative;
	display: inline-block;
	margin-top: 1.4rem;
	font-size: clamp(3.4rem, 10vw, 6rem);
	line-height: 1;
}
.cs-hero .cs-hero__art::before {
	content: "";
	position: absolute;
	inset: -60% -30%;
	z-index: -1;
	border-radius: 50%;
	background: radial-gradient(circle at 50% 40%, rgba(246, 178, 75, 0.22), rgba(111, 227, 255, 0.12) 45%, transparent 70%);
	filter: blur(10px);
}
.cs-hero h1 { font-size: clamp(2.6rem, 1.4rem + 5vw, 4.125rem); margin-inline: auto; max-width: 14ch; }
.cs-hero .cs-lead { max-width: 560px; margin-inline: auto; }
.cs-hero--page { text-align: left; padding-block: clamp(2.4rem, 5vw, 3.2rem) !important; }
/* Core constrained-layout centers children with margin:auto !important — override to keep inner-page headers left-aligned. */
.cs-hero--page h1 { margin-left: 0 !important; margin-right: 0 !important; max-width: 18ch; }
.cs-hero--page .cs-lead { margin-left: 0 !important; margin-right: 0 !important; max-width: 60ch; }

/* ----------------------------------------------------------------------- */
/* Pathways (homepage section tiles) — icon left, text right               */
/* ----------------------------------------------------------------------- */
.cs-pathway {
	display: flex;
	align-items: center;
	gap: 16px;
	text-decoration: none;
	background: var(--cs-card-fill);
	border: 1px solid var(--cs-card-line);
	border-radius: var(--cs-r-card);
	padding: 1.1rem !important;
	height: 100%;
	transition: transform 0.15s var(--cs-ease), box-shadow 0.2s var(--cs-ease), border-color 0.2s var(--cs-ease);
}
.cs-pathway:hover { transform: translateY(-4px); border-color: var(--cs-card-line-hover); box-shadow: var(--cs-shadow-card); color: inherit; }
.cs-pathway .cs-icon { flex: none; margin-bottom: 0; }
.cs-pathway__text { display: flex; flex-direction: column; gap: 2px; }
.cs-pathway h3 { margin: 0; font-size: 1.18rem; }
.cs-pathway p { color: var(--cs-muted); margin: 0.1rem 0 0; font-size: 0.92rem; }
.cs-pathway .cs-arrow { color: var(--cs-cyan); font-weight: 700; }

/* ----------------------------------------------------------------------- */
/* Characters grid                                                         */
/* ----------------------------------------------------------------------- */
.cs-character {
	text-align: center;
	background: var(--cs-card-fill);
	border: 1px solid var(--cs-card-line);
	border-radius: var(--cs-r-card);
	padding: 1.4rem 1rem !important;
	height: 100%;
	transition: transform 0.15s var(--cs-ease), box-shadow 0.2s var(--cs-ease), border-color 0.2s var(--cs-ease);
}
.cs-character:hover { transform: translateY(-4px); border-color: rgba(255, 143, 163, 0.32); box-shadow: var(--cs-shadow-card); }
.cs-avatar {
	width: 84px; height: 84px; margin: 0 auto 0.7rem;
	display: flex; align-items: center; justify-content: center;
	font-size: 2.5rem; line-height: 1; border-radius: 50%;
	background: radial-gradient(circle at 50% 35%, rgba(255, 143, 163, 0.28), rgba(199, 125, 255, 0.16) 70%, transparent);
	border: 1px solid var(--cs-card-line);
	transition: transform 0.4s var(--cs-ease);
}
.cs-character:hover .cs-avatar { transform: translateY(-3px) rotate(-4deg); }
.cs-character h3 { font-size: 1.2rem; margin: 0.2rem 0 0.1rem; }
.cs-character .cs-role { color: var(--cs-pink); font-weight: 700; font-size: 0.85rem; }
.cs-character p { color: var(--cs-muted); font-size: 0.92rem; }

/* ----------------------------------------------------------------------- */
/* Video cards                                                             */
/* ----------------------------------------------------------------------- */
.cs-video .cs-video__frame {
	position: relative;
	aspect-ratio: 16 / 9;
	border-radius: var(--cs-r-tile);
	overflow: hidden;
	background:
		radial-gradient(circle at 50% 45%, rgba(111, 227, 255, 0.22), rgba(13, 18, 30, 0.9) 60%),
		var(--cs-panel);
	border: 1px solid var(--cs-card-line);
	display: flex; align-items: center; justify-content: center;
	margin-bottom: 0.9rem;
}
.cs-video .cs-video__play {
	width: 48px; height: 48px; border-radius: 50%;
	background: rgba(11, 15, 26, 0.6);
	-webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
	border: 1px solid rgba(255, 255, 255, 0.25);
	color: #fff;
	display: flex; align-items: center; justify-content: center;
	font-size: 1.1rem;
}
.cs-video .wp-block-embed { margin: 0 0 0.9rem; }
.cs-video iframe { border-radius: var(--cs-r-tile); width: 100%; aspect-ratio: 16/9; height: auto; border: 1px solid var(--cs-card-line); }

/* Featured video (Watch page) */
.cs-feature {
	position: relative;
	aspect-ratio: 24 / 10;
	border-radius: var(--cs-r-panel);
	overflow: hidden;
	border: 1px solid var(--cs-card-line);
	background:
		radial-gradient(circle at 50% 40%, rgba(111, 227, 255, 0.2), rgba(13, 18, 30, 0.92) 62%),
		var(--cs-panel);
	display: flex; align-items: center; justify-content: center;
	font-size: clamp(3rem, 8vw, 5rem);
}

/* ----------------------------------------------------------------------- */
/* Book cards                                                              */
/* ----------------------------------------------------------------------- */
.cs-book__cover {
	aspect-ratio: 3 / 4;
	border-radius: var(--cs-r-tile);
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	text-align: center; gap: 0.3rem; padding: 1rem;
	border: 1px solid var(--cs-card-line);
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.45);
	margin-bottom: 0.9rem;
	font-family: "Fredoka", system-ui, sans-serif;
}
.cs-book__cover .cs-book__big { font-size: 2.4rem; line-height: 1; }
.cs-book__cover .cs-book__word { font-size: 1.4rem; font-weight: 700; color: #0B0F1A; }
.cs-cover--shapes { background: linear-gradient(150deg, var(--cs-cyan), var(--cs-violet)); }
.cs-cover--abcs { background: linear-gradient(150deg, var(--cs-amber), var(--cs-pink)); }
.cs-cover--colors { background: linear-gradient(150deg, var(--cs-pink), var(--cs-violet)); }
.cs-cover--numbers { background: linear-gradient(150deg, var(--cs-mint), var(--cs-cyan)); }
.cs-cover--story { background: linear-gradient(150deg, var(--cs-violet), var(--cs-cyan)); }

/* ----------------------------------------------------------------------- */
/* Download cards                                                          */
/* ----------------------------------------------------------------------- */
.cs-download { display: flex; flex-direction: column; }
/* Pills set an !important margin that cancels the auto-centering the card's
   other items get, so in this flex column the pill stretches into a full-width
   bar. Pin it back to a content-width chip, centered like the thumb + title. */
.cs-download .cs-pill { align-self: center; }
.cs-download .cs-download__thumb {
	aspect-ratio: 1 / 1; border-radius: var(--cs-r-tile);
	display: flex; align-items: center; justify-content: center;
	font-size: 2.6rem; margin-bottom: 0.9rem;
	background: radial-gradient(circle at 50% 40%, rgba(52, 211, 153, 0.18), rgba(13, 18, 30, 0.85) 70%), var(--cs-panel);
	border: 1px solid var(--cs-card-line);
}
.cs-download .cs-filemeta { font-size: 0.82rem; color: var(--cs-faint); font-weight: 600; }
.cs-download .wp-block-buttons { margin-top: auto; }

/* ----------------------------------------------------------------------- */
/* Space Facts grid (Learn article)                                        */
/* ----------------------------------------------------------------------- */
.cs-fact {
	background: var(--cs-card-fill);
	border: 1px solid var(--cs-card-line);
	border-radius: var(--cs-r-tile);
	padding: 1.1rem 1.2rem !important;
	height: 100%;
}
.cs-fact .cs-fact__n { font-family: "Fredoka", system-ui, sans-serif; color: var(--cs-amber); font-weight: 600; font-size: 1.6rem; }
.cs-fact p { color: var(--cs-muted); margin: 0.2rem 0 0; font-size: 0.92rem; }

/* Callout boxes: Quick Answer / Try This / Character Connection */
.cs-callout {
	border-radius: var(--cs-r-card);
	padding: 1.4rem 1.6rem !important;
	border: 1px solid var(--cs-card-line);
}
.cs-callout--answer { background: linear-gradient(135deg, rgba(111, 227, 255, 0.1), rgba(111, 227, 255, 0.04)); border-color: rgba(111, 227, 255, 0.22); }
.cs-callout--try { background: rgba(52, 211, 153, 0.07); border-color: rgba(52, 211, 153, 0.22); }
.cs-callout--character { background: rgba(111, 227, 255, 0.06); border-color: rgba(111, 227, 255, 0.18); }
.cs-callout h2, .cs-callout h3 { margin-top: 0; }
.cs-callout p { color: var(--cs-ink); margin-bottom: 0; }

/* ----------------------------------------------------------------------- */
/* Parent trust strip / value cards                                        */
/* ----------------------------------------------------------------------- */
.cs-trust { background: rgba(122, 168, 255, 0.06); border: 1px solid rgba(122, 168, 255, 0.18); border-radius: var(--cs-r-panel); padding: 1.6rem !important; }
.cs-trust .wp-block-column { text-align: center; }
.cs-trust .cs-icon { margin-inline: auto; }
.cs-trust h3 { font-size: 1.05rem; }
.cs-trust p { color: var(--cs-muted); font-size: 0.9rem; }

/* ----------------------------------------------------------------------- */
/* Newsletter / Join Mission Control                                       */
/* ----------------------------------------------------------------------- */
.cs-newsletter {
	border-radius: var(--cs-r-panel);
	border: 1px solid var(--cs-card-line);
	background:
		linear-gradient(160deg, rgba(246, 178, 75, 0.12), rgba(111, 227, 255, 0.08));
	padding: clamp(1.8rem, 4vw, 3rem) !important;
}
.cs-signup-form { max-width: 440px; margin: 1.2rem auto 0; }
.cs-signup-form .cs-fields { display: flex; gap: 0.6rem; flex-wrap: wrap; }
.cs-signup-form input[type="text"],
.cs-signup-form input[type="email"] {
	flex: 1 1 200px;
	background: rgba(11, 15, 26, 0.6);
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: var(--cs-r);
	color: var(--cs-ink);
	padding: 0.85rem 1rem;
	font-size: 1rem;
	font-family: inherit;
}
.cs-signup-form input::placeholder { color: var(--cs-faint); }
.cs-signup-form input:focus { outline: 2px solid var(--cs-cyan); outline-offset: 1px; }
.cs-signup-form button {
	flex: 0 0 auto;
	background: var(--cs-amber);
	color: #0B0F1A;
	border: 0;
	border-radius: var(--cs-r);
	padding: 0.85rem 1.5rem;
	font-family: "Fredoka", system-ui, sans-serif;
	font-weight: 600;
	font-size: 1rem;
	cursor: pointer;
	transition: filter 0.15s var(--cs-ease);
}
.cs-signup-form button:hover { filter: brightness(1.07); }
.cs-signup-note { font-size: 0.82rem; color: var(--cs-faint); margin-top: 0.8rem; }

/* ----------------------------------------------------------------------- */
/* CTA strip                                                               */
/* ----------------------------------------------------------------------- */
.cs-cta {
	text-align: center;
	border-radius: var(--cs-r-panel);
	border: 1px solid var(--cs-card-line);
	background: linear-gradient(160deg, rgba(246, 178, 75, 0.12), rgba(111, 227, 255, 0.08));
	padding: clamp(2rem, 5vw, 3.4rem) !important;
}

/* Breadcrumb-ish meta line on articles */
.cs-article-meta { color: var(--cs-body); font-size: 0.9rem; }

/* ----------------------------------------------------------------------- */
/* Latest Posts grid (auto-updating Learn list)                            */
/* ----------------------------------------------------------------------- */
.wp-block-latest-posts.is-grid { gap: 1.1rem; margin: 1.5rem 0 0; }
.wp-block-latest-posts.is-grid li {
	background: var(--cs-card-fill);
	border: 1px solid var(--cs-card-line);
	border-radius: var(--cs-r-card);
	padding: 1.25rem !important;
	margin: 0;
	transition: transform 0.15s var(--cs-ease), box-shadow 0.2s var(--cs-ease), border-color 0.2s var(--cs-ease);
}
.wp-block-latest-posts.is-grid li:hover { transform: translateY(-4px); border-color: rgba(199, 125, 255, 0.32); box-shadow: var(--cs-shadow-card); }
.wp-block-latest-posts__post-title {
	font-family: "Fredoka", system-ui, sans-serif;
	font-weight: 600;
	font-size: 1.18rem;
	color: var(--cs-ink) !important;
	display: inline-block;
	margin-bottom: 0.4rem;
}
.wp-block-latest-posts__post-title:hover { color: var(--cs-violet) !important; }
.wp-block-latest-posts__post-date { color: var(--cs-faint); font-size: 0.8rem; }
.wp-block-latest-posts__post-excerpt { color: var(--cs-muted); font-size: 0.92rem; margin-top: 0.5rem; }

/* ----------------------------------------------------------------------- */
/* Footer (custom 4-column)                                                */
/* ----------------------------------------------------------------------- */
.cs-footer {
	position: relative;
	z-index: 1;
	background: rgba(9, 12, 21, 0.6);
	border-top: 1px solid var(--cs-line);
	padding: 3.4rem 1.5rem 1.8rem;
	color: var(--cs-body);
}
.cs-footer__inner {
	max-width: var(--cs-content);
	margin: 0 auto;
	display: grid;
	grid-template-columns: 2fr 1fr 1fr 1fr;
	gap: 2rem;
	align-items: start;
}
.cs-footer__brand { max-width: 420px; }
.cs-footer__logo { font-family: "Fredoka", system-ui, sans-serif; font-weight: 600; font-size: 1.4rem; color: var(--cs-ink); display: inline-block; }
.cs-footer__tagline { margin: 0.6rem 0 0.4rem; color: var(--cs-body); font-size: 0.95rem; }
.cs-footer__phrase { color: var(--cs-amber); font-family: "Fredoka", system-ui, sans-serif; font-weight: 600; margin: 0; }
.cs-footer__studio { font-family: "Space Grotesk", ui-monospace, monospace; text-transform: uppercase; letter-spacing: 0.1em; color: var(--cs-faint); font-size: 0.72rem; margin: 0.9rem 0 0; }
.cs-footer__head { font-family: "Space Grotesk", ui-monospace, monospace; text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.78rem; color: var(--cs-cyan-tint); margin: 0 0 0.85rem; }
.cs-footer__list { list-style: none; margin: 0; padding: 0; }
.cs-footer__list li { margin-bottom: 0.5rem; }
.cs-footer__list a { color: var(--cs-body); text-decoration: none; font-weight: 600; font-size: 0.92rem; }
.cs-footer__list a:hover { color: var(--cs-cyan); }
.cs-footer__bar {
	max-width: var(--cs-content);
	margin: 2.2rem auto 0;
	padding-top: 1.4rem;
	border-top: 1px solid var(--cs-line);
	display: flex; flex-wrap: wrap; gap: 0.6rem 1.5rem; justify-content: space-between; align-items: center;
	font-size: 0.85rem;
}
.cs-footer__bar p { margin: 0; color: var(--cs-dim); }
.cs-footer__legal a { color: var(--cs-faint); text-decoration: none; }
.cs-footer__legal a:hover { color: var(--cs-cyan); }

/* ----------------------------------------------------------------------- */
/* Misc Kadence overrides                                                  */
/* ----------------------------------------------------------------------- */
.entry-hero-container-inner, .entry-hero { background: transparent !important; }
.wp-block-separator { border-color: var(--cs-line); }
figure.wp-block-image img { border-radius: var(--cs-r-tile); }
.wp-block-image.is-style-cs-rounded img { border-radius: var(--cs-r-panel); border: 1px solid var(--cs-card-line); }
.wp-block-pullquote, .wp-block-quote { border-color: var(--cs-cyan); color: var(--cs-ink); }
.wp-block-embed-youtube iframe,
.wp-block-embed.is-type-video iframe { border-radius: var(--cs-r-tile); width: 100%; aspect-ratio: 16/9; height: auto; }

/* ----------------------------------------------------------------------- */
/* Responsive                                                              */
/* ----------------------------------------------------------------------- */
@media (max-width: 900px) {
	.cs-footer__inner { grid-template-columns: 1fr 1fr; }
	.cs-footer__brand { grid-column: 1 / -1; max-width: none; }
	.cs-hero--page { text-align: center; }
	.cs-hero--page h1, .cs-hero--page .cs-lead { margin-inline: auto; }
}
@media (max-width: 600px) {
	.cs-hero h1 { font-size: clamp(2rem, 8vw + 0.6rem, 2.6rem); }
	h2 { font-size: clamp(1.6rem, 5vw + 0.6rem, 2rem); }
	.cs-card-grid.wp-block-columns { gap: 0.9rem; }
	.cs-footer__inner { grid-template-columns: 1fr; }
}

/* ----------------------------------------------------------------------- */
/* Brand image assets — hero key art, photo avatars, space backdrop, mascot */
/* ----------------------------------------------------------------------- */

/* Hero key art (image variant of .cs-hero__art — see /assets/images) */
.cs-hero figure.cs-hero__art { margin-top: 1.6rem; }
.cs-hero figure.cs-hero__art::before { content: none; } /* drop the emoji glow for the framed image */
.cs-hero figure.cs-hero__art img {
	display: block;
	width: 100%;
	max-width: 880px;
	height: auto;
	margin-inline: auto;
	border-radius: var(--cs-r-panel);
	box-shadow: var(--cs-shadow-card);
}

/* Photo avatars — character standees / closeups inside the round badge */
.cs-avatar img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
	border-radius: 50%;
}

/* Nebula backdrop for full-bleed sections (overlay keeps cards readable) */
.cs-bg-space {
	position: relative;
	background-image:
		linear-gradient(180deg, rgba(8, 11, 20, 0.82), rgba(8, 11, 20, 0.9)),
		url("../images/CLA-spaceBG-01.webp");
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

/* Floating Zibu mascot peeking into the newsletter panel */
.cs-newsletter--mascot { position: relative; overflow: hidden; }
.cs-newsletter--mascot > :not(.cs-mascot) { position: relative; z-index: 1; }
.cs-mascot { pointer-events: none; user-select: none; }
.cs-mascot--zibu {
	position: absolute;
	right: -6px;
	bottom: -22px;
	width: clamp(118px, 13vw, 172px);
	height: auto;
	z-index: 0;
	filter: drop-shadow(0 12px 24px rgba(0, 0, 0, 0.45));
}
@media (max-width: 880px) {
	.cs-mascot--zibu { display: none; }
}

/* ----------------------------------------------------------------------- */
/* Motion safety                                                           */
/* ----------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}
