/* ═══════════════════════════════════════════════════════════════════════════
   Tales From The Bridge — brand theme
   Palette sampled directly from the 2026 key art; OKLCH triples computed from
   those pixels. DaisyUI 4.12.10 token format is a bare `L% C H`.

   RULE: --a (neon magenta) is a FILL ONLY. It measures 2.98:1 on base-100 and
   must never carry text. Use it for borders, glows and gradient stops.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Chakra Petch — SIL OFL. Licence: assets/fonts/chakra-petch-OFL.txt ──────
   unicode-range values copied verbatim from the Google Fonts stylesheet at
   fetch time, so the browser pulls only the subset a page actually needs. */
@font-face{font-family:'Chakra Petch';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/chakra-petch-400-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Chakra Petch';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/chakra-petch-400-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}

@font-face{font-family:'Chakra Petch';font-style:normal;font-weight:500;font-display:swap;
  src:url('../fonts/chakra-petch-500-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Chakra Petch';font-style:normal;font-weight:500;font-display:swap;
  src:url('../fonts/chakra-petch-500-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}

@font-face{font-family:'Chakra Petch';font-style:normal;font-weight:600;font-display:swap;
  src:url('../fonts/chakra-petch-600-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Chakra Petch';font-style:normal;font-weight:600;font-display:swap;
  src:url('../fonts/chakra-petch-600-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}

@font-face{font-family:'Chakra Petch';font-style:normal;font-weight:700;font-display:swap;
  src:url('../fonts/chakra-petch-700-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Chakra Petch';font-style:normal;font-weight:700;font-display:swap;
  src:url('../fonts/chakra-petch-700-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}

/* ── DaisyUI theme tokens ─────────────────────────────────────────────────── */
[data-theme="tftb"] {
  color-scheme: dark;

  --p:   89.4354% 0.183080  99.465;   /* primary        gold      #FADD14  13.4:1 */
  --pc:  17.7784% 0.050243 297.684;   /* on-primary     space              14.2:1 */
  --s:   66.4146% 0.162452 149.840;   /* secondary      neon grn  #32AE5A   6.4:1 */
  --sc:  17.7784% 0.050243 297.684;   /* on-secondary   space               6.8:1 */
  --a:   52.3342% 0.214772 318.808;   /* accent         magenta   #9B2CB6   FILL  */
  --ac:  95.8561% 0.026367 155.972;   /* on-accent      off-white           6.1:1 */

  --n:   27.9222% 0.104616 293.553;   /* neutral        indigo    #2D1956          */
  --nc:  95.8561% 0.026367 155.972;

  --b1:  20.2552% 0.059945 297.110;   /* base-100                 #1A0F2E          */
  --b2:  17.7784% 0.050243 297.684;   /* base-200                 #140B24          */
  --b3:  23.6463% 0.067805 300.541;   /* base-300                 #241539          */
  --bc:  95.8561% 0.026367 155.972;   /* base-content             #E4F7EA  16.3:1  */

  --in:  83.2893% 0.127077 172.784;   /* info           mint      #5FE3C0          */
  --inc: 17.7784% 0.050243 297.684;
  --su:  78.2088% 0.194824 149.483;   /* success                  #3ED96F          */
  --suc: 17.7784% 0.050243 297.684;
  --wa:  78.3652% 0.158720  72.991;   /* warning        amber     #F5A623          */
  --wac: 17.7784% 0.050243 297.684;
  --er:  65.2547% 0.203125  33.778;   /* error          red rule  #F2512E          */
  --erc: 95.8561% 0.026367 155.972;

  /* geometry — squarer than synthwave, echoing the wordmark's blocky letterforms */
  --rounded-box: 0.75rem;
  --rounded-btn: 0.375rem;
  --rounded-badge: 1.9rem;
  --border-btn: 1px;
  --tab-radius: 0.375rem;
  --animation-btn: .25s;
  --btn-focus-scale: .97;
}

/* ── Typography roles (§2.4.4) ────────────────────────────────────────────────
   Display + UI = Chakra Petch. Long-form reading stays on Merriweather; the
   arcade table stays on Press Start 2P. */
.font-sci-fi { font-family:'Chakra Petch',system-ui,sans-serif; font-weight:700; letter-spacing:.02em; }
.font-ui     { font-family:'Chakra Petch',system-ui,sans-serif; font-weight:500; }

[data-theme="tftb"] .btn,
[data-theme="tftb"] .navbar .menu a,
[data-theme="tftb"] .badge,
[data-theme="tftb"] .tab,
[data-theme="tftb"] .card-title,
[data-theme="tftb"] .footer-title,
[data-theme="tftb"] .stat-title,
[data-theme="tftb"] .stat-value {
  font-family:'Chakra Petch',system-ui,sans-serif;
  font-weight:600;
  letter-spacing:.015em;
}

/* ── Brand-coloured furniture (replaces the old synthwave hardcodes) ───────── */
[data-theme="tftb"] .transcript-scroll::-webkit-scrollbar-track { background:#241539; }
[data-theme="tftb"] .transcript-scroll::-webkit-scrollbar-thumb { background:#FADD14; }
[data-theme="tftb"] .custom-scroll::-webkit-scrollbar-thumb     { background:#FADD14; }

/* ── Accent text exception ────────────────────────────────────────────────────
   --a is the deep brand magenta #9B2CB6, correct as a FILL (badge-accent,
   bg-accent, border-accent) but only 2.98:1 on base-100 — it fails WCAG AA as
   type. DaisyUI's .text-accent reads --a directly, so scope a lighter tint of
   the same hue (320°) for text only. #D97BEE = 6.96:1, comfortably AA.
   Fills are untouched; nothing in the markup has to change. */
[data-theme="tftb"] .text-accent { color:#D97BEE; }
[data-theme="tftb"] .link-accent  { color:#D97BEE; }
[data-theme="tftb"] .stat-figure.text-accent { color:#D97BEE; }

/* ── Merriweather + Press Start 2P, self-hosted ───────────────────────────────
   REGRESSION FIX: V2 removed the two Google Fonts <link> tags but never
   vendored these, so .font-reader fell back to a generic serif and .font-arcade
   had no pixel font at all. Merriweather is now a variable font upstream — one
   file per subset covers 300-700, so the weight range is declared rather than
   shipping the same bytes three times. Both faces are SIL OFL. */
@font-face{font-family:'Merriweather';font-style:normal;font-weight:300 700;font-display:swap;
  src:url('../fonts/merriweather-var-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Merriweather';font-style:normal;font-weight:300 700;font-display:swap;
  src:url('../fonts/merriweather-var-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Press Start 2P';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/press-start-2p-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Press Start 2P';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/press-start-2p-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
