/* TBSA Brand Tokens — Single source of truth */
:root {
  /* Primary palette — sampled from official logo & brand bar */
  --tbsa-crimson:    #A20018;  /* Primary — logo "B", authority */
  --tbsa-crimson-dk: #7A0012;  /* darker for hover/text on light */
  --tbsa-crimson-lt: #C13848;
  --tbsa-gold:       #A37A0F;  /* Secondary — logo "S", bar */
  --tbsa-gold-dk:    #7A5A08;
  --tbsa-gold-lt:    #C9A23C;
  --tbsa-brush:      #9F3128;  /* Brush stroke red */

  /* Neutrals */
  --tbsa-ink:        #1F1B16;  /* Body text dark, dark-mode bg */
  --tbsa-ink-2:      #3A332A;
  --tbsa-stone:      #6B6357;
  --tbsa-mist:       #C9C2B4;
  --tbsa-parchment:  #F8F4EC;  /* Light bg */
  --tbsa-paper:      #FFFEFB;
  --tbsa-line:       #E6DFD0;

  /* Semantic */
  --bg:        var(--tbsa-paper);
  --bg-soft:   var(--tbsa-parchment);
  --fg:        var(--tbsa-ink);
  --fg-soft:   var(--tbsa-stone);
  --line:      var(--tbsa-line);
  --accent:    var(--tbsa-crimson);
  --accent-2:  var(--tbsa-gold);

  /* Type */
  --font-han:  "Noto Serif TC", "Source Han Serif TC", "PingFang TC", "Songti TC", serif;
  --font-sans: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", system-ui, sans-serif;
  --font-en:   "Cormorant Garamond", "EB Garamond", Georgia, "Times New Roman", serif;
  --font-en-sans: "Inter", "Helvetica Neue", Arial, sans-serif;

  /* Radii / shadows */
  --r-xs: 2px; --r-sm: 4px; --r-md: 8px; --r-lg: 14px;
  --shadow-1: 0 1px 2px rgba(31,27,22,.06), 0 2px 8px rgba(31,27,22,.04);
  --shadow-2: 0 4px 16px rgba(31,27,22,.10), 0 12px 32px rgba(31,27,22,.06);
}

/* Brand bar — a reusable visual signature */
.tbsa-bar {
  height: 6px;
  background: linear-gradient(
    to right,
    var(--tbsa-gold) 0%,
    var(--tbsa-gold) 48%,
    var(--tbsa-crimson) 52%,
    var(--tbsa-crimson) 100%
  );
}
.tbsa-bar.thin { height: 3px; }
.tbsa-bar.thick { height: 10px; }
.tbsa-bar.split-soft {
  background: linear-gradient(
    to right,
    var(--tbsa-gold) 0%,
    var(--tbsa-gold) 45%,
    var(--tbsa-brush) 55%,
    var(--tbsa-crimson) 100%
  );
}
