/* ═══════════════════════════════════════════════════════════════════════════
   WYRR Brand Lock — the institutional override.
   Served from wyrr.me/shared/wyrr-brand.css and loaded LAST in every panel
   (immediately before </head>, after the panel's own inline <style>) so it
   wins the cascade at equal specificity.

   Every panel was built with its own :root token vocabulary. Rather than
   hand-edit each panel, this file re-points that shared vocabulary to the one
   institutional palette — retheming every department through its own
   references. Calm, minimal, cold-future. No neon, no blur, no perpetual
   motion, no particle fields, no scanlines. The spectrum is signal only.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 1. Re-point every panel's local token vocabulary (dark, primary) ────── */
:root {
  /* grounds & surfaces */
  --ink:        #0A0A0A;
  --bg:         #0A0A0A;
  --bg-0:       #0A0A0A;
  --bg-1:       #141414;
  --panel:      #141414;
  --panel-hi:   #181818;
  --surface:    #141414;
  --srf-a:      #141414;
  --srf-b:      #181818;
  --sheet-bg:   #141414;
  --card:       #141414;

  /* structure — hairlines */
  --hairline:    rgba(255, 255, 255, 0.06);
  --hairline-hi: rgba(255, 255, 255, 0.10);
  --line:        rgba(255, 255, 255, 0.06);
  --border:      rgba(255, 255, 255, 0.06);
  --glass:       #141414;
  --glass-hi:    #181818;

  /* text — cold near-white */
  --text:        #F5F5F5;
  --txt:         #F5F5F5;
  --txt-2:       rgba(255, 255, 255, 0.56);
  --txt-3:       rgba(255, 255, 255, 0.34);
  --muted:       rgba(255, 255, 255, 0.56);
  --faint:       rgba(255, 255, 255, 0.34);
  --text-dim:    rgba(255, 255, 255, 0.56);
  --text-faint:  rgba(255, 255, 255, 0.34);

  /* gold — premium only, kept true */
  --gold:        #D4AF37;
  --gold-soft:   #E4C860;
  --gold-bright: #E9C765;
  --gold-deep:   #9C7E1E;

  /* the WYRR spectrum — signal only */
  --coral:  #FF6B4A;
  --pink:   #FF3D8B;
  --pink-soft: rgba(255, 61, 139, 0.16);
  --orange: #FF9D42;
  --purple: #9B5DE5;
  --cyan:   #6BB8E8;
  --word-grad: linear-gradient(180deg,#FFFFFF,#E4E4E4);
  --signal:    linear-gradient(120deg, #FF6B4A 0%, #FF3D8B 34%, #FF9D42 66%, #9B5DE5 100%);

  /* status — functional, not neon */
  --ok:    #3DD68C;
  --good:  #3DD68C;
  --green: #3DD68C;
  --bad:   #F0668A;
  --warn:  #E7B04B;

  /* shadows — restrained; no colored glow */
  --shadow-card:       0 1px 2px rgba(0,0,0,0.40);
  --shadow-card-hover: 0 4px 20px rgba(0,0,0,0.45);
  --shadow-panel:      0 4px 20px rgba(0,0,0,0.45);
  --shadow-float:      0 12px 48px rgba(0,0,0,0.55);
  --shadow-deep:       0 12px 48px rgba(0,0,0,0.55);
  --vignette:          transparent;

  /* fonts — Inter / mono for data */
  --font-ui:   "Inter", -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, sans-serif;
  --sans:      "Inter", -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;
  --mono:      "JetBrains Mono", ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;

  /* motion — collapse springy/bouncy eases to one calm curve */
  --ease: cubic-bezier(0.22, 1, 0.36, 1);

  --r: 12px;
}

/* Light institution — near-white, same signals (only when a panel opts in) */
[data-theme="light"],
[data-wyrr-theme="light"] {
  --ink: #FAFAFA;   --bg: #FAFAFA;   --bg-0: #FAFAFA;   --bg-1: #FFFFFF;
  --panel: #FFFFFF; --panel-hi: #F4F4F4; --surface: #FFFFFF;
  --srf-a: #FFFFFF; --srf-b: #F4F4F4; --glass: #FFFFFF; --glass-hi: #F4F4F4;
  --hairline: rgba(10,10,10,0.08); --hairline-hi: rgba(10,10,10,0.14);
  --line: rgba(10,10,10,0.08); --border: rgba(10,10,10,0.08);
  --text: #0A0A0A; --txt: #0A0A0A; --txt-2: rgba(10,10,10,0.58); --txt-3: rgba(10,10,10,0.36);
  --muted: rgba(10,10,10,0.58); --faint: rgba(10,10,10,0.36);
  --text-dim: rgba(10,10,10,0.58); --text-faint: rgba(10,10,10,0.36);
}

/* ── 2. Ground every panel on the same near-black ───────────────────────── */
html, body {
  background-color: #0A0A0A;
}
[data-theme="light"] html, [data-theme="light"] body,
[data-wyrr-theme="light"] html, [data-wyrr-theme="light"] body { background-color: #FAFAFA; }

/* ── 3. Kill decorative canvas fields (particles / fluid / scanlines) ────── */
canvas[data-wyrr-fluid],
#wyrr-fluid, .wyrr-fluid,
canvas.fluid, canvas#fluid, .particle-canvas, #particles,
.scanlines, .scanline, .crt-overlay, .noise-overlay, .grain-overlay {
  display: none !important;
}

/* ── 4. No blur anywhere — the institution is flat and honest ───────────── */
* {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

/* ── 5. Neutralise neon glows (broad, bounded) — keep intentional signal ─── */
:where(button, .btn, .card, .panel, .tile, .chip, .badge, input, a, h1, h2, h3, section, header, nav) {
  text-shadow: none;
}

/* ── 6. Motion discipline ───────────────────────────────────────────────
   Perpetual decorative fields are removed at the source (wyrr-fluid.js is
   dropped from every panel; canvas overlays hidden in §3). Author-authored
   transitions and functional animation are left intact — blanket class-name
   animation killers risk breaking real layout on a live platform. */

/* Respect reduced motion fully */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 1ms !important;
  }
}
