/* Save acknowledgement. Casting CST-286. */
.ack-live {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
/* Under the header, out of the way of the thing just done, and never in the way of a tap. */
.ack-pill {
  position: fixed; left: 50%; transform: translateX(-50%);
  top: calc(env(safe-area-inset-top, 0px) + var(--ack-top, 62px)); z-index: 30;
  padding: 8px 15px; border-radius: 999px; font-size: 13px;
  background: var(--ack-bg, #1c1d21); color: var(--ack-ink, #fff);
  border: 1px solid var(--ack-edge, rgba(255, 255, 255, .12));
  pointer-events: none; opacity: 0;
}
@media (prefers-reduced-motion: no-preference) {
  .ack-pill.in { animation: ack 1.9s cubic-bezier(.2, .8, .2, 1) forwards; }
  @keyframes ack {
    0% { opacity: 0; transform: translateX(-50%) translateY(-6px) }
    14% { opacity: 1; transform: translateX(-50%) translateY(0) }
    78% { opacity: 1; transform: translateX(-50%) translateY(0) }
    100% { opacity: 0; transform: translateX(-50%) translateY(-4px) }
  }
}
@media (prefers-reduced-motion: reduce) { .ack-pill.in { opacity: 1; } }
