/* Fast acknowledgement; no global transition:all and no animation of layout. */
/* ROUND 2: the screen-to-screen and buy/usage-tab reveals used to be a native View Transition
   (::view-transition-old/new(root) below) with a header/nav carve-out and a fadeUp-suppression
   rule. The owner reported that path still shook/flickered on both a bottom-nav tap and a buy-tab
   pivot, and asked to match the login/register screens' own reveal (auth-motion.js's FLIP via the
   Web Animations API) instead of continuing to tame the native crossfade. That reveal now lives
   entirely in smooth-ui.js (cpNavigate) as real transform/opacity animations on the live DOM — no
   snapshot, no UA mix-blend-mode, so this file no longer needs any view-transition CSS at all.
   What is left here are the small, always-on press/focus micro-interactions that were never part
   of that system. */
.cp-root button, .cp-root a, .cp-root [role="button"] {
  transition: background-color 140ms ease-out, border-color 140ms ease-out,
    color 140ms ease-out, opacity 140ms ease-out, scale 140ms cubic-bezier(.16,1,.3,1);
  -webkit-tap-highlight-color: transparent;
}
.cp-root button:not(:disabled):active, .cp-root [role="button"]:active {
  filter: brightness(.93);
  scale:.98;
}
.cp-root input, .cp-root textarea, .cp-root select {
  transition: border-color 140ms ease-out, box-shadow 140ms ease-out;
}
@media (prefers-reduced-motion: reduce) {
  .cp-root button:not(:disabled):active, .cp-root [role="button"]:active { scale:1; }
  .cp-root button, .cp-root a, .cp-root [role="button"],
  .cp-root input, .cp-root textarea, .cp-root select { transition-duration:70ms; }
}
