/* ============================================================================
   exotic — deployment mode · css/mode.css
   ----------------------------------------------------------------------------
   The half of the prod gate that must not flash. Every rule is scoped to the
   data-mode="prod" stamp build.mjs writes onto <html>, so dev is untouched and
   an unbuilt local checkout — which carries no stamp — is dev.

   `!important` is deliberate here and nowhere else: this is a kill switch, not
   a style. A door into the app that survives because some later rule out-ranks
   us is a bug a visitor can walk through.
   ========================================================================== */

/* every link into a surface prod does not ship, marked at its source */
html[data-mode="prod"] [data-app] { display: none !important; }

/* the footer's explorations drawer — the labs are dev-only, always. The
   `hidden` attribute on most of them and the script that lifts it both stop
   at prod, but `Missing out` never carried `hidden`, so this is what actually
   holds the line. */
html[data-mode="prod"] .ft-x,
html[data-mode="prod"] .ft-more { display: none !important; }

/* ---- the nudge -------------------------------------------------------- */
/* A diverted CTA lands the visitor on the capture form. Landing there
   silently reads as a dead button, so the form says it heard them: one ring,
   outward, gone. The counterpart to the .nope shake a bad address gets.
   It rings with `outline`, not `box-shadow` — .cap already spends its
   box-shadow on var(--chip-shadow), var(--chip-in), and an animation would
   take the whole property with it and flatten the chip mid-ring. */
@keyframes x-cap-ping {
  from { outline-color: color-mix(in oklab, var(--g3) 62%, transparent); outline-offset: 0; }
  to   { outline-color: transparent; outline-offset: 11px; }
}
html[data-mode="prod"] .cap.ping {
  outline: 2px solid transparent;
  animation: x-cap-ping .72s cubic-bezier(.22, .61, .36, 1) 1;
}
@media (prefers-reduced-motion: reduce) {
  html[data-mode="prod"] .cap.ping { animation: none; }
}
