The console button's missing state — the 5+ seconds between the click and the confirmed readout. The corner brackets breathe — the console's own mark, pulsing — while re-entry locks and the guest is told not to close the window. Built from the button's own geometry, not a foreign spinner.
30-minute intro with Boas · your time, GMT
Still working — don't close this window.
You're booked.
Confirmation + calendar invite on the way to your inbox.
That didn't go through. The slot may have just been taken, or the connection dropped. Nothing was booked.
.btn--alert red pulse. Unmissable, un-clicked..is-busy + aria-busy, swaps label to Confirming…, locks pointer-events. Red flips to azure — the click landed. The corner brackets breathe — pulse outward + brighten (brbreathe), the system's own mark working; edge stays calm. Min-display floor ~500ms so it never flashes..is-busy → hand to the confirmed readout (or the /g portal, canon row 6.5)..is-busy, restore label, surface the never-dead-end pair — retry + "pick a different time" (canon Row 10). Never a dead stop.--edge-static + the label swap carry the meaning. No motion needed to read "working".Booking… / Sending code… / Cancelling… / Rescheduling…. Drop-in over the shipped .btn block + a small JS submit-wrapper.