/* ═══════════════════════════════════════════════════════════════════════════
   OMNIS — NXP Motion Protocol CSS Tokens
   ═══════════════════════════════════════════════════════════════════════════
   RULE: Only transform + opacity animate. Nothing else. Ever.
   These custom properties enforce the constraint across all CSS transitions.
   ═══════════════════════════════════════════════════════════════════════════ */

:root {
  /* ── Easing curves ── */
  --nxp-ease-nav:     cubic-bezier(0.16, 1, 0.3, 1);
  --nxp-ease-data:    cubic-bezier(0.22, 0.61, 0.36, 1);
  --nxp-ease-alert:   cubic-bezier(0.4, 0, 1, 1);
  --nxp-ease-hover:   cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --nxp-ease-exit:    cubic-bezier(0.55, 0.06, 0.68, 0.19);
  --nxp-ease-spring:  cubic-bezier(0.34, 1.4, 0.64, 1);

  /* ── Timing ── */
  --nxp-t-instant: 80ms;
  --nxp-t-fast:    120ms;
  --nxp-t-normal:  200ms;
  --nxp-t-slow:    350ms;
  --nxp-t-glacial: 600ms;
}

/* ── GPU-safe transition utility classes ── */
.nxp-hover-lift {
  transition: transform var(--nxp-t-fast) var(--nxp-ease-hover),
              opacity var(--nxp-t-fast) var(--nxp-ease-hover);
  will-change: transform, opacity;
}
.nxp-hover-lift:hover {
  transform: translateY(-1px);
}
.nxp-hover-lift:active {
  transform: translateY(0);
}

.nxp-hover-glow {
  transition: opacity var(--nxp-t-fast) var(--nxp-ease-hover),
              filter var(--nxp-t-normal) var(--nxp-ease-hover);
}
.nxp-hover-glow:hover {
  filter: brightness(1.08);
}

/* ── Reduced motion override ── */
@media (prefers-reduced-motion: reduce) {
  .nxp-hover-lift,
  .nxp-hover-glow {
    transition: none !important;
    animation: none !important;
  }
  .nxp-hover-lift:hover {
    transform: none !important;
  }
}
