/* =========================================================================
   GeeKPress Limelight — geekui-vars.css
   Every GeeKPress variable space, redefined with the Limelight palette:
   emerald-stage ground · antique-gold limelight accents · champagne highlights ·
   salmon warm tone. Declared under body{} (beats the plugin's neutral :root
   defaults) AND on the React root ids for safety. Light mode re-binds via
   body[data-theme="light"] (matinée: ivory house lights, deep green ink).
   ========================================================================= */

body.limelight-body,
body,
[id^="geekui-root"],
#geekp-frontpage-root {

	/* ---- shared / movie / catalog / name / mediaviewer ---- */
	--geekui-bg: var(--lml-bg);
	--geekui-bg-2: var(--lml-bg-2);
	--geekui-text: var(--lml-text);
	--geekui-text-dim: var(--lml-text-dim);
	--geekui-text-mute: var(--lml-text-mute);
	--geekui-accent: var(--lml-lime);
	--geekui-accent-2: var(--lml-lime-2);
	--geekui-accent-d: var(--lml-lime-deep);
	--geekui-accent-ink: var(--lml-ink-on-gold);
	--geekui-on-accent: var(--lml-ink-on-gold);
	--geekui-success: var(--lml-lime);
	--geekui-warning: var(--lml-tone-good);
	--geekui-danger: var(--lml-danger);
	--geekui-surface: var(--lml-surface);
	--geekui-surface-2: var(--lml-surface-2);
	--geekui-border: var(--lml-line);
	--geekui-border-strong: var(--lml-line-strong);
	--geekui-radius: 6px;
	--geekui-radius-lg: 10px;
	--geekui-card-radius: 6px;
	--geekui-card-shadow: 0 14px 34px rgba(0, 0, 0, 0.45), 0 0 18px rgba(var(--lml-lime-rgb), 0.10);
	--geekui-card-hover-shadow: 0 18px 40px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(var(--lml-lime-rgb), 0.3);
	--geekui-modal-bg: var(--lml-bg-2);
	--geekui-modal-text: var(--lml-text);
	--geekui-font-base: 'Figtree', system-ui, sans-serif;
	--geekui-font-title: 'DM Serif Display', 'Georgia', serif;
	--geekui-font-mono: 'Space Mono', ui-monospace, monospace;
	--geekui-glow: rgba(var(--lml-lime-rgb), 0.35);
	--geekui-hero-fade: rgba(var(--lml-bg-rgb), 0.92);
	--geekui-hero-tint: rgba(var(--lml-bg-rgb), 0.55);
	--geekui-hero-text-shadow: 0 2px 18px rgba(0, 0, 0, 0.65);
	--geekui-noposter-movie: var(--lml-card);
	--geekui-noposter-tv: var(--lml-card);
	--geekui-noposter-game: var(--lml-surface);
	--geekui-noposter-person: var(--lml-card-alt);
	--geekui-noposter-char: var(--lml-card-alt);
	--geekui-tone-exceptional: var(--lml-lime);
	--geekui-tone-great: var(--lml-tone-great);
	--geekui-tone-good: var(--lml-tone-good);
	--geekui-tone-mixed: var(--lml-hot);
	--geekui-tone-poor: var(--lml-danger);
	--geekui-tone-muted: var(--lml-text-mute);

	/* ---- game (game-enhanced.css) ---- */
	--gx-bg: var(--lml-bg);
	--gx-bg-deep: var(--lml-deep);
	--gx-bg-card: var(--lml-card);
	--gx-bg-card2: var(--lml-card-2);
	--gx-accent: var(--lml-lime);
	--gx-accent2: var(--lml-lime-2);
	--gx-accent-dim: rgba(var(--lml-lime-rgb), 0.13);
	--gx-hot: var(--lml-hot);
	--gx-hot2: var(--lml-hot-2);
	--gx-hot-dim: rgba(var(--lml-hot-rgb), 0.13);
	--gx-text: var(--lml-text);
	--gx-text-dim: var(--lml-text-dim);
	--gx-text-muted: var(--lml-text-mute);
	--gx-text-mute: var(--lml-text-mute);
	--gx-border: var(--lml-line);
	--gx-border2: var(--lml-line-2);
	--gx-danger: var(--lml-danger);
	--gx-wish: var(--lml-cream);
	--gx-played: var(--lml-lime);
	--gx-star: var(--lml-cream);
	--gx-cyan: var(--lml-tone-great);
	--gx-edge: rgba(var(--lml-lime-rgb), 0.3);
	--gx-font-mono: 'Space Mono', ui-monospace, monospace;
	--gx-hero-bg: var(--lml-bg-2);

	/* ---- fields / taxonomy ---- */
	--gxf-bg: var(--lml-bg);
	--gxf-bg-2: var(--lml-bg-2);
	--gxf-bg-deep: var(--lml-deep);
	--gxf-bg-card: var(--lml-card);
	--gxf-accent: var(--lml-lime);
	--gxf-accent-2: var(--lml-lime-2);
	--gxf-accent-d: var(--lml-lime-deep);
	--gxf-text: var(--lml-text);
	--gxf-text-dim: var(--lml-text-dim);
	--gxf-text-mute: var(--lml-text-mute);
	--gxf-border: var(--lml-line);
	--gxf-border-2: var(--lml-line-2);

	/* ---- company ---- */
	--gxcm-bg: var(--lml-bg);
	--gxcm-bg-2: var(--lml-bg-2);
	--gxcm-bg-deep: var(--lml-deep);
	--gxcm-bg-card: var(--lml-card);
	--gxcm-accent: var(--lml-lime);
	--gxcm-accent-2: var(--lml-lime-2);
	--gxcm-hot: var(--lml-hot);
	--gxcm-hot-2: var(--lml-hot-2);
	--gxcm-text: var(--lml-text);
	--gxcm-text-dim: var(--lml-text-dim);
	--gxcm-text-mute: var(--lml-text-mute);
	--gxcm-border: var(--lml-line);
	--gxcm-border-2: var(--lml-line-2);

	/* ---- platform ---- */
	--gxpl-bg: var(--lml-bg);
	--gxpl-bg-2: var(--lml-bg-2);
	--gxpl-bg-deep: var(--lml-deep);
	--gxpl-bg-card: var(--lml-card);
	--gxpl-accent: var(--lml-lime);
	--gxpl-accent-2: var(--lml-lime-2);
	--gxpl-hot: var(--lml-hot);
	--gxpl-hot-2: var(--lml-hot-2);
	--gxpl-text: var(--lml-text);
	--gxpl-text-dim: var(--lml-text-dim);
	--gxpl-text-mute: var(--lml-text-mute);
	--gxpl-border: var(--lml-line);
	--gxpl-border-2: var(--lml-line-2);

	/* ---- engine ---- */
	--gxen-bg: var(--lml-bg);
	--gxen-bg-2: var(--lml-bg-2);
	--gxen-bg-deep: var(--lml-deep);
	--gxen-bg-card: var(--lml-card);
	--gxen-accent: var(--lml-lime);
	--gxen-accent-2: var(--lml-lime-2);
	--gxen-hot: var(--lml-hot);
	--gxen-hot-2: var(--lml-hot-2);
	--gxen-text: var(--lml-text);
	--gxen-text-dim: var(--lml-text-dim);
	--gxen-text-mute: var(--lml-text-mute);
	--gxen-border: var(--lml-line);
	--gxen-border-2: var(--lml-line-2);

	/* ---- profile ---- */
	--gxp-bg: var(--lml-bg);
	--gxp-bg-2: var(--lml-bg-2);
	--gxp-bg-deep: var(--lml-deep);
	--gxp-bg-card: var(--lml-card);
	--gxp-accent: var(--lml-lime);
	--gxp-accent-2: var(--lml-lime-2);
	--gxp-accent-d: var(--lml-lime-deep);
	--gxp-text: var(--lml-text);
	--gxp-text-dim: var(--lml-text-dim);
	--gxp-text-mute: var(--lml-text-mute);
	--gxp-border: var(--lml-line);
	--gxp-border-2: var(--lml-line-2);

	/* ---- articles (critic/review) ---- */
	--gem-dark: var(--lml-bg);
	--gem-ink: var(--lml-text);
	--gem-ink2: var(--lml-text-dim);
	--gem-mute: var(--lml-text-mute);
	--gem-gold: var(--lml-cream);
	--gem-gold2: var(--lml-cream-bright);
	--gem-panel: var(--lml-card);
	--gem-panel2: var(--lml-card-2);
	--gem-line: var(--lml-line);
	--gem-line2: var(--lml-line-2);
	--gem-border: var(--lml-line-mid);
	--gxa-bg: var(--lml-bg);
	--gxa-panel: var(--lml-card);
	--gxa-panel2: var(--lml-card-2);
	--gxa-text: var(--lml-text);
	--gxa-text-dim: var(--lml-text-dim);
	--gxa-text-mute: var(--lml-text-mute);
	--gxa-border: var(--lml-line);
	--gxa-border2: var(--lml-line-2);
	--gxa-hero-bg: var(--lml-bg-2);

	/* ---- lists / login / register ---- */
	--gxl-bg: var(--lml-bg);
	--gxl-bg-2: var(--lml-bg-2);
	--gxl-bg-deep: var(--lml-deep);
	--gxl-bg-card: var(--lml-card);
	--gxl-accent: var(--lml-lime);
	--gxl-accent-2: var(--lml-lime-2);
	--gxl-text: var(--lml-text);
	--gxl-text-dim: var(--lml-text-dim);
	--gxl-text-mute: var(--lml-text-mute);
	--gxl-border: var(--lml-line);
	--gxl-border-2: var(--lml-line-2);

	--gxg-bg: var(--lml-bg);
	--gxg-bg-2: var(--lml-bg-2);
	--gxg-bg-card: var(--lml-card);
	--gxg-accent: var(--lml-lime);
	--gxg-accent-2: var(--lml-lime-2);
	--gxg-danger: var(--lml-danger);
	--gxg-text: var(--lml-text);
	--gxg-text-dim: var(--lml-text-dim);
	--gxg-text-mute: var(--lml-text-mute);
	--gxg-border: var(--lml-line);

	--gxr-bg: var(--lml-bg);
	--gxr-bg-2: var(--lml-bg-2);
	--gxr-bg-card: var(--lml-card);
	--gxr-accent: var(--lml-lime);
	--gxr-accent-2: var(--lml-lime-2);
	--gxr-danger: var(--lml-danger);
	--gxr-text: var(--lml-text);
	--gxr-text-dim: var(--lml-text-dim);
	--gxr-text-mute: var(--lml-text-mute);
	--gxr-border: var(--lml-line);
	--gxr-border-2: var(--lml-line-2);
}

/* =========================================================================
   LIGHT MODE — matinée: ivory house lights, deep emerald ink.
   The plugin toggle writes body[data-theme="light"].
   ========================================================================= */

body[data-theme="light"],
body[data-theme="light"] [id^="geekui-root"],
body[data-theme="light"] #geekp-frontpage-root {

	--geekui-bg: #f3f1e7;
	--geekui-bg-2: #eae7d8;
	--geekui-text: #1c180a;
	--geekui-text-dim: #4d4630;
	--geekui-text-mute: var(--lml-text-mute);
	--geekui-accent: #8a6c1a;
	--geekui-accent-2: #6b5210;
	--geekui-accent-d: #c09a32;
	--geekui-accent-ink: #fbf6e4;
	--geekui-on-accent: #fbf6e4;
	--geekui-success: #8a6c1a;
	--geekui-warning: #8a6f2c;
	--geekui-danger: #b8492a;
	--geekui-surface: #faf8ef;
	--geekui-surface-2: #efecdc;
	--geekui-border: #d6d4c0;
	--geekui-border-strong: #bcb392;
	--geekui-card-shadow: 0 8px 22px rgba(34, 54, 40, 0.12);
	--geekui-card-hover-shadow: 0 12px 26px rgba(34, 54, 40, 0.18), 0 0 0 1px rgba(138, 108, 26, 0.35);
	--geekui-modal-bg: #faf8ef;
	--geekui-modal-text: #1c180a;
	--geekui-glow: rgba(138, 108, 26, 0.22);
	--geekui-hero-fade: rgba(243, 241, 231, 0.92);
	--geekui-hero-tint: rgba(234, 231, 216, 0.5);
	--geekui-hero-text-shadow: 0 1px 10px rgba(255, 255, 248, 0.6);
	--geekui-noposter-movie: #e2dfca;
	--geekui-noposter-tv: #e2dfca;
	--geekui-noposter-game: #ddd9c4;
	--geekui-noposter-person: #e2dfca;
	--geekui-noposter-char: #e2dfca;
	--geekui-tone-exceptional: #8a6c1a;
	--geekui-tone-great: #4c7d3c;
	--geekui-tone-good: #8a6f2c;
	--geekui-tone-mixed: #a55a2e;
	--geekui-tone-poor: #b8492a;
	--geekui-tone-muted: var(--lml-text-mute);

	--gx-bg: #f3f1e7;
	--gx-bg-deep: #eae7d8;
	--gx-bg-card: #faf8ef;
	--gx-bg-card2: #efecdc;
	--gx-accent: #8a6c1a;
	--gx-accent2: #6b5210;
	--gx-accent-dim: rgba(138, 108, 26, 0.1);
	--gx-hot: #b8633f;
	--gx-hot2: #97491f;
	--gx-hot-dim: rgba(184, 99, 63, 0.1);
	--gx-text: #1c180a;
	--gx-text-dim: #4d4630;
	--gx-text-muted: var(--lml-text-mute);
	--gx-text-mute: var(--lml-text-mute);
	--gx-border: #d6d4c0;
	--gx-border2: #bcb392;
	--gx-danger: #b8492a;
	--gx-wish: #8a6f2c;
	--gx-played: #8a6c1a;
	--gx-star: #a3841f;
	--gx-cyan: #4c7d3c;
	--gx-edge: rgba(138, 108, 26, 0.3);
	--gx-hero-bg: #eae7d8;

	--gxf-bg: #f3f1e7; --gxf-bg-2: #eae7d8; --gxf-bg-deep: #e2dfca; --gxf-bg-card: #faf8ef;
	--gxf-accent: #8a6c1a; --gxf-accent-2: #6b5210; --gxf-accent-d: #c09a32;
	--gxf-text: #1c180a; --gxf-text-dim: #4d4630; --gxf-text-mute: var(--lml-text-mute);
	--gxf-border: #d6d4c0; --gxf-border-2: #bcb392;

	--gxcm-bg: #f3f1e7; --gxcm-bg-2: #eae7d8; --gxcm-bg-deep: #e2dfca; --gxcm-bg-card: #faf8ef;
	--gxcm-accent: #8a6c1a; --gxcm-accent-2: #6b5210; --gxcm-hot: #b8633f; --gxcm-hot-2: #97491f;
	--gxcm-text: #1c180a; --gxcm-text-dim: #4d4630; --gxcm-text-mute: var(--lml-text-mute);
	--gxcm-border: #d6d4c0; --gxcm-border-2: #bcb392;

	--gxpl-bg: #f3f1e7; --gxpl-bg-2: #eae7d8; --gxpl-bg-deep: #e2dfca; --gxpl-bg-card: #faf8ef;
	--gxpl-accent: #8a6c1a; --gxpl-accent-2: #6b5210; --gxpl-hot: #b8633f; --gxpl-hot-2: #97491f;
	--gxpl-text: #1c180a; --gxpl-text-dim: #4d4630; --gxpl-text-mute: var(--lml-text-mute);
	--gxpl-border: #d6d4c0; --gxpl-border-2: #bcb392;

	--gxen-bg: #f3f1e7; --gxen-bg-2: #eae7d8; --gxen-bg-deep: #e2dfca; --gxen-bg-card: #faf8ef;
	--gxen-accent: #8a6c1a; --gxen-accent-2: #6b5210; --gxen-hot: #b8633f; --gxen-hot-2: #97491f;
	--gxen-text: #1c180a; --gxen-text-dim: #4d4630; --gxen-text-mute: var(--lml-text-mute);
	--gxen-border: #d6d4c0; --gxen-border-2: #bcb392;

	--gxp-bg: #f3f1e7; --gxp-bg-2: #eae7d8; --gxp-bg-deep: #e2dfca; --gxp-bg-card: #faf8ef;
	--gxp-accent: #8a6c1a; --gxp-accent-2: #6b5210; --gxp-accent-d: #c09a32;
	--gxp-text: #1c180a; --gxp-text-dim: #4d4630; --gxp-text-mute: var(--lml-text-mute);
	--gxp-border: #d6d4c0; --gxp-border-2: #bcb392;

	--gem-dark: #f3f1e7; --gem-ink: #1c180a; --gem-ink2: #4d4630; --gem-mute: var(--lml-text-mute);
	--gem-gold: #8a6f2c; --gem-gold2: #6e5820;
	--gem-panel: #faf8ef; --gem-panel2: #efecdc;
	--gem-line: #d6d4c0; --gem-line2: #bcb392; --gem-border: #c8c6ae;
	--gxa-bg: #f3f1e7; --gxa-panel: #faf8ef; --gxa-panel2: #efecdc;
	--gxa-text: #1c180a; --gxa-text-dim: #4d4630; --gxa-text-mute: var(--lml-text-mute);
	--gxa-border: #d6d4c0; --gxa-border2: #bcb392; --gxa-hero-bg: #eae7d8;

	--gxl-bg: #f3f1e7; --gxl-bg-2: #eae7d8; --gxl-bg-deep: #e2dfca; --gxl-bg-card: #faf8ef;
	--gxl-accent: #8a6c1a; --gxl-accent-2: #6b5210;
	--gxl-text: #1c180a; --gxl-text-dim: #4d4630; --gxl-text-mute: var(--lml-text-mute);
	--gxl-border: #d6d4c0; --gxl-border-2: #bcb392;

	--gxg-bg: #f3f1e7; --gxg-bg-2: #eae7d8; --gxg-bg-card: #faf8ef;
	--gxg-accent: #8a6c1a; --gxg-accent-2: #6b5210; --gxg-danger: #b8492a;
	--gxg-text: #1c180a; --gxg-text-dim: #4d4630; --gxg-text-mute: var(--lml-text-mute);
	--gxg-border: #d6d4c0;

	--gxr-bg: #f3f1e7; --gxr-bg-2: #eae7d8; --gxr-bg-card: #faf8ef;
	--gxr-accent: #8a6c1a; --gxr-accent-2: #6b5210; --gxr-danger: #b8492a;
	--gxr-text: #1c180a; --gxr-text-dim: #4d4630; --gxr-text-mute: var(--lml-text-mute);
	--gxr-border: #d6d4c0; --gxr-border-2: #bcb392;
}

/* ════════════════════════════════════════════════════════════════
   GLOBAL LOADER — one thin gilded ring everywhere (replaces the
   plugin's chunky RiLoader3Fill). The plugin Loader mounts
   <div class="geekfp-spinner"> whose inner icon ALSO carries
   .geekfp-spinner (class trap — guard via .geekfp-rotating).
   Loaded with the vars on EVERY skin context, deliberately
   unscoped: loaders render before any container mounts.
   ════════════════════════════════════════════════════════════════ */
.geekfp-spinner {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 220px;
	position: relative;
	color: var(--geekui-accent-2, var(--lml-lime-2));
}
.geekfp-spinner .geekfp-rotating,
.geekfp-spinner > svg {
	opacity: 0 !important;
	width: 0 !important;
	height: 0 !important;
	font-size: 0 !important;
	position: absolute !important;
	pointer-events: none !important;
}
.geekfp-spinner::after {
	content: '';
	width: 46px;
	height: 46px;
	flex: none;
	border: 2.5px solid rgba(var(--lml-lime-rgb), 0.16);
	border-top-color: var(--geekui-accent, var(--lml-lime));
	border-right-color: rgba(var(--lml-lime2-rgb), 0.7);
	border-radius: 50%;
	box-shadow: 0 0 18px rgba(var(--lml-lime-rgb), 0.22);
	animation: lml-ring-spin 0.8s linear infinite;
}
@keyframes lml-ring-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
	.geekfp-spinner::after { animation-duration: 2.4s; }
}
