/* Neutral text is opaque black on light surfaces and white on dark surfaces. */
:root {
  --treq-ink-rgb: 0 0 0;
  --text-0: #000;
  --text-1: #000;
  --text-2: #000;
  --text-3: #000;
}

:where(
  .bg-black, .bg-slate-700, .bg-slate-800, .bg-slate-900, .bg-slate-950,
  .bg-gray-700, .bg-gray-800, .bg-gray-900, .bg-gray-950,
  .bg-zinc-700, .bg-zinc-800, .bg-zinc-900, .bg-zinc-950,
  .bg-neutral-700, .bg-neutral-800, .bg-neutral-900, .bg-neutral-950,
  .bg-stone-700, .bg-stone-800, .bg-stone-900, .bg-stone-950,
  .bg-blue-600, .bg-blue-700, .bg-blue-800, .bg-blue-900,
  .photo-hero-copy, .treq-inverse-ink, .code-block,
  .social-cat-trigger, .social-cat-panel, .social-cat-opt:hover,
  [style*="background:#0f172a"], [style*="background: #0f172a"],
  [style*="background:#1e293b"], [style*="background: #1e293b"],
  [style*="background:#111827"], [style*="background: #111827"]
) {
  --treq-ink-rgb: 255 255 255;
  --text-0: #fff;
  --text-1: #fff;
  --text-2: #fff;
  --text-3: #fff;
}

/* Nested light cards/fields must not inherit white text from a dark panel. */
:where(
  .bg-white, .bg-slate-50, .bg-slate-100, .bg-slate-200,
  .bg-gray-50, .bg-gray-100, .bg-gray-200,
  .bg-zinc-50, .bg-zinc-100, .bg-zinc-200,
  .bg-neutral-50, .bg-neutral-100, .bg-neutral-200,
  .bg-stone-50, .bg-stone-100, .bg-stone-200,
  .treq-default-ink,
  [style*="background:#fff"], [style*="background: #fff"],
  [style*="background:#f1f5f9"], [style*="background: #f1f5f9"]
) {
  --treq-ink-rgb: 0 0 0;
  --text-0: #000;
  --text-1: #000;
  --text-2: #000;
  --text-3: #000;
}

body { color: #000; }
input::placeholder, textarea::placeholder {
  color: rgb(var(--treq-ink-rgb, 0 0 0));
  opacity: 1;
}
