/* ==========================================================
   neur0doku-play-theme.css

   THIS is the file that actually defines what each neur0doku theme
   looks like. neur0doku-theme.css (loaded just before this file) only
   owns structural rules now (header-hide, overflow fixes) — every
   color token lives here instead, split into three theme blocks.

   Every other neur0doku-*.css file is UNCHANGED by this — they only
   ever consume var(--nd-*)/var(--theme-*), never a literal color, so
   nothing downstream needs to know how many themes exist or what
   they're called.

   SELECTOR: [data-nd-theme="neur0doku" | "neur0loom" | "neur0loop"],
   set on <html>. Falls back to "neur0doku" if the attribute is ever
   missing (a page that hasn't been updated yet, or JS failing to run)
   — see the bare :root selector on the first block.

   THREE THEMES, IDENTICAL VALUES FOR NOW — this is intentional, not
   a placeholder oversight. "neur0loom" and "neur0loop" are exact
   duplicates of "neur0doku" below; the plan is to hand-edit each
   one's actual hex values in place once real palettes are chosen
   (neur0loom -> sky blue, neur0loop -> a red-leaning tone). Nothing
   else in the codebase needs to change when that happens — just the
   values inside these two blocks.

   LOAD ORDER: immediately after neur0doku-theme.css, before
   neur0doku-components.css, on every page.
   ========================================================== */

/* ---------- neur0doku (default) ----------
   The current, live palette — pale blue page, white surfaces,
   cream/gold buttons. Nothing here was redesigned, only named and
   given room to have siblings. */
:root,
[data-nd-theme="neur0doku"] {
  --nd-bg: #d8eeff;
  --nd-surface: #ffffff;
  --nd-surface-soft: rgba(255, 255, 255, 0.7);

  --nd-text: #2c2f36;
  --nd-text-soft: #5b6470;

  --nd-border: rgba(0, 0, 0, 0.08);
  --nd-shadow: rgba(0, 0, 0, 0.1);

  --nd-accent: #2b6cad;
  --nd-focus: #2b6cad;

  /* The cream/gold button family — Play, Extras, and any other
     primary action button in the game. */
  --nd-button-bg: #f6e3c2;
  --nd-button-bg-hover: #f9ecd6;
  --nd-button-border: #d8b782;
  --nd-button-ink: #6b4a1e;

  /* Puzzle grid cell background before a region color is applied */
  --nd-cell-bg: #f2f2f2;

  /* Shared by every neur0doku modal (Settings, Profile, future ones). */
  --nd-overlay: rgba(20, 24, 32, 0.45);
  --nd-on: #3fa34d;
  --nd-on-2: #2e8b3f;
  --nd-off: rgba(0, 0, 0, 0.14);

  /* Destructive/danger red — restart level, delete, "mistake" flags. */
  --nd-danger: #e0645a;
  --nd-danger-hover: #d55550;

  /* "Warning" red — a DIFFERENT semantic job from --nd-danger above,
     even though it happens to reuse the same value today. Covers the
     Reset Account button and its confirm text (previously two
     separate inline #b3261e hardcodes in index-home.html — see the
     Find/Replace list). Deliberately its own token rather than reused
     --nd-danger, since "you are about to wipe your progress" and "you
     made a mistake in a puzzle" are different enough in weight that a
     future theme might reasonably want to distinguish them. */
  --nd-warning: #b3261e;
  --nd-warning-bg: color-mix(in srgb, var(--nd-warning) 12%, var(--nd-surface) 88%);

  /* The win modal's full-screen backdrop — previously a separate,
     coincidentally-similar rgba(0,0,0,0.45) literal living directly
     in neur0doku-play.css instead of referencing --nd-overlay. Now a
     real, named, independently-tunable token. */
  --nd-solved-overlay: rgba(0, 0, 0, 0.45);

  /* Guild inactivity-handoff banner. Kept as a color-mix() of the
     shared accent/surface tokens (identical to what it always looked
     like), just named now so a theme can override it directly if a
     given accent/surface pairing ever reads muddy there. */
  --nd-guild-banner-bg: color-mix(in srgb, var(--nd-accent) 10%, var(--nd-surface) 90%);
  --nd-guild-banner-border: color-mix(in srgb, var(--nd-accent) 30%, var(--nd-border) 70%);

  /* Medal colors — deliberately the SAME literal value in every
     theme block below (gold/silver/bronze should read as gold/
     silver/bronze regardless of active theme), just named per the
     "semantic meaning over hex-chasing" principle. */
  --theme-rank-gold: #c9971f;
  --theme-rank-silver: #93a0ac;
  --theme-rank-bronze: #b3702f;

  /* Confetti burst (win modal). Six colors, reused across the 14
     pieces (see index-play.html/index-challenge.html markup) —
     structured as real tokens now instead of inline hex literals, so
     a future theme COULD recolor its own confetti, but every theme
     below currently holds the exact original values on purpose (per
     your "keeping those as the original" call). */
  --nd-confetti-1: #ff6b6b;
  --nd-confetti-2: #ffd166;
  --nd-confetti-3: #06d6a0;
  --nd-confetti-4: #4cc9f0;
  --nd-confetti-5: #c77dff;
  --nd-confetti-6: #f72585;
}

/* ---------- neur0loom ----------
   EXACT duplicate of neur0doku above, on purpose — edit the values
   in this block to the real sky-blue palette whenever you're ready.
   Nothing else needs to change; every other file already just reads
   var(--nd-*)/var(--theme-*). */
[data-nd-theme="neur0loom"] {
  --nd-bg: #d8eeff;
  --nd-surface: #ffffff;
  --nd-surface-soft: rgba(255, 255, 255, 0.7);

  --nd-text: #2c2f36;
  --nd-text-soft: #5b6470;

  --nd-border: rgba(0, 0, 0, 0.08);
  --nd-shadow: rgba(0, 0, 0, 0.1);

  --nd-accent: #2b6cad;
  --nd-focus: #2b6cad;

  --nd-button-bg: #f6e3c2;
  --nd-button-bg-hover: #f9ecd6;
  --nd-button-border: #d8b782;
  --nd-button-ink: #6b4a1e;

  --nd-cell-bg: #f2f2f2;

  --nd-overlay: rgba(20, 24, 32, 0.45);
  --nd-on: #3fa34d;
  --nd-on-2: #2e8b3f;
  --nd-off: rgba(0, 0, 0, 0.14);

  --nd-danger: #e0645a;
  --nd-danger-hover: #d55550;

  --nd-warning: #b3261e;
  --nd-warning-bg: color-mix(in srgb, var(--nd-warning) 12%, var(--nd-surface) 88%);

  --nd-solved-overlay: rgba(0, 0, 0, 0.45);

  --nd-guild-banner-bg: color-mix(in srgb, var(--nd-accent) 10%, var(--nd-surface) 90%);
  --nd-guild-banner-border: color-mix(in srgb, var(--nd-accent) 30%, var(--nd-border) 70%);

  --theme-rank-gold: #c9971f;
  --theme-rank-silver: #93a0ac;
  --theme-rank-bronze: #b3702f;

  --nd-confetti-1: #ff6b6b;
  --nd-confetti-2: #ffd166;
  --nd-confetti-3: #06d6a0;
  --nd-confetti-4: #4cc9f0;
  --nd-confetti-5: #c77dff;
  --nd-confetti-6: #f72585;
}

/* ---------- neur0loop ----------
   EXACT duplicate of neur0doku above, on purpose — edit the values
   in this block to the real red-leaning palette whenever you're
   ready. Same story as neur0loom above. */
[data-nd-theme="neur0loop"] {
  --nd-bg: #d8eeff;
  --nd-surface: #ffffff;
  --nd-surface-soft: rgba(255, 255, 255, 0.7);

  --nd-text: #2c2f36;
  --nd-text-soft: #5b6470;

  --nd-border: rgba(0, 0, 0, 0.08);
  --nd-shadow: rgba(0, 0, 0, 0.1);

  --nd-accent: #2b6cad;
  --nd-focus: #2b6cad;

  --nd-button-bg: #f6e3c2;
  --nd-button-bg-hover: #f9ecd6;
  --nd-button-border: #d8b782;
  --nd-button-ink: #6b4a1e;

  --nd-cell-bg: #f2f2f2;

  --nd-overlay: rgba(20, 24, 32, 0.45);
  --nd-on: #3fa34d;
  --nd-on-2: #2e8b3f;
  --nd-off: rgba(0, 0, 0, 0.14);

  --nd-danger: #e0645a;
  --nd-danger-hover: #d55550;

  --nd-warning: #b3261e;
  --nd-warning-bg: color-mix(in srgb, var(--nd-warning) 12%, var(--nd-surface) 88%);

  --nd-solved-overlay: rgba(0, 0, 0, 0.45);

  --nd-guild-banner-bg: color-mix(in srgb, var(--nd-accent) 10%, var(--nd-surface) 90%);
  --nd-guild-banner-border: color-mix(in srgb, var(--nd-accent) 30%, var(--nd-border) 70%);

  --theme-rank-gold: #c9971f;
  --theme-rank-silver: #93a0ac;
  --theme-rank-bronze: #b3702f;

  --nd-confetti-1: #ff6b6b;
  --nd-confetti-2: #ffd166;
  --nd-confetti-3: #06d6a0;
  --nd-confetti-4: #4cc9f0;
  --nd-confetti-5: #c77dff;
  --nd-confetti-6: #f72585;
}