/* Shared Omni brand wordmark (2026-09-23): "Omni" in ink + the product word
   ("Board" / "Stats") in the accent gradient, same as the approved logos.
   Loaded LAST in <head> on every page so it overrides each page's older
   single-gradient wordmark rules. Font is inherited (Thmanyah Sans Black). */
body .omni-logo-name,
body .board-omni-name,
body .pg-logo > span,
body .pg-omni-name {
  background: none;
  -webkit-background-clip: border-box;
  background-clip: border-box;
  -webkit-text-fill-color: currentColor;
  color: var(--ink, #e8eaec);
  direction: ltr;
  unicode-bidi: isolate;
  white-space: pre;
}
body .omni-logo-product {
  background: linear-gradient(135deg, var(--logo-primary, var(--accent, #6ab0ff)), color-mix(in srgb, var(--logo-primary, var(--accent, #6ab0ff)) 72%, var(--ink, #fff) 28%));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
/* Homepage hero: the product word eases in/out (2026-09-23). Each word owns a
   grid track that animates 0fr <-> 1fr, so the width follows the word's REAL
   size (no max-width guess) and Board -> Stats morphs continuously while the
   centred lockup glides instead of jumping. */
body .omni-swap { display: inline-flex; align-items: baseline; }
body .omni-swap-item {
  display: grid;
  grid-template-columns: 0fr;
  opacity: 0;
  transition: grid-template-columns .75s cubic-bezier(.22, 1, .36, 1),
              opacity .55s cubic-bezier(.22, 1, .36, 1);
}
body .omni-swap-item.is-visible { grid-template-columns: 1fr; opacity: 1; }
body .omni-swap-inner {
  display: block;
  min-width: 0;
  overflow: hidden;
  white-space: pre;
  padding: 0 0 .12em 0;
  margin-bottom: -.12em;
  transform: translateX(-16px);
  filter: blur(6px);
  transition: transform .75s cubic-bezier(.22, 1, .36, 1),
              filter .55s cubic-bezier(.22, 1, .36, 1);
  will-change: transform, filter;
}
body .omni-swap-item.is-visible .omni-swap-inner { transform: none; filter: none; }
@media (prefers-reduced-motion: reduce) {
  body .omni-swap-item, body .omni-swap-inner { transition: none; filter: none; }
}
