/* ============================================================================
   D-EDGE default theme — brand tokens
   Rebrand a deck by overriding these custom properties (no engine/layout edits).
   ============================================================================ */
:root {
  /* --- core palette --- */
  --paper: #ffffff;          /* content-slide ground */
  --ink: #2c1b47;            /* deep purple text */
  --ink-soft: #5a4a72;       /* secondary text */
  --ink-faint: #8a7da3;      /* captions / meta */

  --accent: #12c2b0;         /* D-EDGE teal/mint */
  --accent-ink: #0c8275;     /* teal for text on white (AA contrast) */
  --band: #f4eefc;           /* lavender section band */
  --hair: #e7e0f3;           /* hairline rules / borders */

  /* signature purple gradient (cover, dividers, callouts) */
  --violet: #6d28d9;
  --violet-deep: #4c1d95;
  --violet-soft: #b9a7f0;    /* light brand tint (triangle, ring, gantt bars) */
  --band-strong: #e7defa;    /* deeper lavender (agenda pill end) */
  --card: #ffffff;           /* card / panel surface on content slides */
  --tint: #6b3fb8;           /* hero-photo colour wash */
  --hero-accent: #d9c6ff;    /* light second title line on frame slides */
  --hero-sub: #e4d6ff;       /* hero subtitle on frame slides */
  --violet-ink: #6d28d9;     /* brand violet used AS TEXT (readable on --paper) */
  --violet-fill: #6d28d9;    /* brand violet as a fill behind white text */
  --accent-strong: #0c8275;  /* accent used as a fill behind white text (pins) */
  --grad: linear-gradient(135deg, #7c3aed 0%, #5b21b6 55%, #3b1576 100%);

  /* status-icon system */
  --status-issue: #f5a623;   /* amber  — needs work */
  --status-broken: #e23b3b;  /* red    — broken / error */
  --status-opp: var(--accent-ink); /* teal — opportunity */
  --status-positive: #25b06a;/* green  — works well */
  --status-neutral: #9aa0a6; /* grey   — unevaluable / not observable */
  /* the same statuses used AS TEXT (scorecard notes): darkened to ≥ 3:1 on white */
  --status-issue-ink: #b87d1a;
  --status-broken-ink: #e23b3b;
  --status-positive-ink: #219e5f;
  --status-neutral-ink: #8b9095;
  --status-opp-ink: var(--accent-ink);

  /* text laid over a fixed picture (annotated labels): the picture never changes
     with the theme, so these never flip on frame slides or in the dark preset */
  --fixed-paper: #ffffff;
  --fixed-ink: #2c1b47;
  --fixed-ink-soft: #5a4a72;
  --fixed-ink-faint: #7d7096;
  --fixed-violet: #6d28d9;
  --fixed-accent: #0c8275;

  /* --- type --- */
  --font-display: "Playfair Display", Georgia, "Times New Roman", serif;
  --font-body: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --tracking-eyebrow: 0.18em;

  /* --- rhythm --- */
  --slide-pad-x: clamp(2.2rem, 6cqw, 7rem);
  --slide-pad-y: clamp(2rem, 6cqh, 5rem);
  --radius: 16px;
  --radius-sm: 10px;
  --shadow-card: 0 18px 50px -24px rgba(44, 27, 71, 0.45);
  --maxw: 1180px;
}

/* the footer logo is white: recoloured (keeping the teal) on white slides.
   Themes override --logo-filter per slide (engine/themes.js). */
.slide:not(.slide--dark) {
  --logo-filter: invert(1) hue-rotate(180deg);
}

/* On gradient "frame" slides, flip ink/paper so shared components stay legible. */
.slide--dark {
  --ink: #ffffff;
  --ink-soft: rgba(255, 255, 255, 0.82);
  --ink-faint: rgba(255, 255, 255, 0.6);
  --hair: rgba(255, 255, 255, 0.18);
  --band: rgba(255, 255, 255, 0.08);
  --accent-ink: #5ff0df;
  --status-neutral: rgba(255, 255, 255, 0.55);
  --violet-ink: #e4d6ff;
  --status-issue-ink: #f5a623;
  --status-positive-ink: #3fd08a;
  --status-broken-ink: #ff7a7a;
  --status-neutral-ink: rgba(255, 255, 255, 0.6);
}
