/* ============================================================
   EBANX Hackathon 2026 — Color tokens
   Source of truth: Ebanx_hakathon_kv_2026.pdf key visual.
   Extracted brand colors:
     #A459FF  vivid violet (primary)      rgb(164, 89,255)
     #663BA3  deep violet  (shade)        rgb(102, 59,163)
     #12100B  warm near-black (canvas)    rgb( 18, 16, 11)
     #F2F2F2  light gray                  rgb(242,242,242)
     #FFFFFF  white
   Everything else is an oklch-harmonised step off these anchors.
   ============================================================ */

:root {
  /* ---- Brand anchors (verbatim from KV) ------------------ */
  --brand-violet:        #A459FF;   /* the hackathon purple   */
  --brand-violet-deep:   #663BA3;   /* secondary / shadow purple */
  --brand-ink:           #12100B;   /* the canvas black       */
  --brand-paper:         #F2F2F2;   /* off-white surface      */
  --brand-white:         #FFFFFF;

  /* ---- Violet scale (anchored on #A459FF @ 500) ---------- */
  --violet-50:   oklch(0.965 0.020 300);
  --violet-100:  oklch(0.930 0.045 300);
  --violet-200:  oklch(0.870 0.090 300);
  --violet-300:  oklch(0.795 0.150 300);
  --violet-400:  oklch(0.720 0.205 300);
  --violet-500:  #A459FF;                 /* brand primary    */
  --violet-600:  oklch(0.560 0.235 300);
  --violet-700:  #663BA3;                 /* brand deep       */
  --violet-800:  oklch(0.380 0.150 300);
  --violet-900:  oklch(0.290 0.105 300);
  --violet-950:  oklch(0.215 0.075 300);

  /* ---- Warm neutral / ink scale (anchored on #12100B) ---- */
  /* hue kept slightly warm (~70) to match the KV's warm black */
  --ink-950:  #0A0907;
  --ink-900:  #12100B;                    /* canvas           */
  --ink-850:  #17150F;
  --ink-800:  #1F1C15;
  --ink-700:  #2C2820;
  --ink-600:  #423D31;
  --ink-500:  #635C4B;
  --ink-400:  #8B8472;
  --ink-300:  #B3AD9D;
  --ink-200:  #D6D2C8;
  --ink-100:  #ECEAE4;
  --ink-50:   #F7F6F3;
  --paper:    #F2F2F2;
  --white:    #FFFFFF;

  /* ---- Functional accents (kept inside the violet family
          + minimal status hues so the brand stays disciplined) */
  --signal-success:  oklch(0.74 0.17 155);
  --signal-warning:  oklch(0.80 0.16  85);
  --signal-danger:   oklch(0.64 0.22  25);
  --signal-info:     var(--violet-400);

  /* =========================================================
     SEMANTIC ALIASES  (use these in product code)
     The system is dark-first — the KV lives on warm black.
     ========================================================= */

  /* Surfaces */
  --surface-canvas:    var(--ink-900);    /* page background  */
  --surface-sunken:    var(--ink-950);
  --surface-raised:    var(--ink-850);    /* cards            */
  --surface-overlay:   var(--ink-800);    /* popovers/dialogs */
  --surface-inverse:   var(--paper);      /* light surface    */
  --surface-brand:     var(--violet-500);
  --surface-brand-deep:var(--violet-700);

  /* Text */
  --text-primary:      var(--white);
  --text-secondary:    var(--ink-300);
  --text-muted:        var(--ink-400);
  --text-disabled:     var(--ink-500);
  --text-brand:        var(--violet-400);
  --text-on-brand:     var(--white);
  --text-inverse:      var(--ink-900);    /* dark text on light surface */

  /* Borders & lines */
  --border-subtle:     color-mix(in oklab, var(--white) 8%, transparent);
  --border-default:    color-mix(in oklab, var(--white) 14%, transparent);
  --border-strong:     color-mix(in oklab, var(--white) 26%, transparent);
  --border-brand:      var(--violet-500);

  /* Interactive accents */
  --accent:            var(--violet-500);
  --accent-hover:      var(--violet-400);
  --accent-press:      var(--violet-600);
  --accent-soft:       color-mix(in oklab, var(--violet-500) 16%, transparent);
  --focus-ring:        var(--violet-400);
}
