Core mechanic · blind-swap redesign

The swap

One swap per match: drop one of your three, then commit to one of the four undrawn cards — which sit face down. You pick a position, not a value; the card you drew is revealed to you alone, only after you commit. No preview, no take-back — it is a gamble. You still pay 2% of your bet, in one of two windows (calm before round one, urgent at 1-1), and using one window forfeits the other. Because the pool is hidden, the swap is no longer an information leak: the opponent learns only that a swap happened, and when.

Calm vs urgent, without a second accent

The pre-game modal stays cool-neutral (Surface2 is already a blue-grey) with gold for action; the 1-1 modal shifts frame and glow to loss red. Temperature and intensity carry the two windows — no new hue enters the token set just for this screen.

Pre-game modal — try the blind swap

Live: tap a card in your hand to drop, tap one of the four face-down slots to choose a position, then commit. The taken card flips up for you only, after the commit — there is no preview and no cancel. "Save for later" reserves the swap for the 1-1 window; "Decline" gives it up for the match.

You 0 – 0 Opp Swap

Pre-game · before round 1

Take a blind swap?

Drop a card and gamble on a face-down one, save the swap for a 1-1 decider, or keep your hand.

1 Drop 2 Pick slot 3 Commit
Your hand — tap one to drop
Undrawn pool — face down · tap a slot to gamble on
Swap fee 2% of your 10.00 bet · charged win or lose, even if you drew worse 0.20
interactive · drop → pick face-down slot → commit → reveal
You 0 – 0 Opp

Pre-game · before round 1

Take a blind swap?

Dropping the 2. Now pick a face-down slot — you won't see it until you commit.

Drop 2 Pick slot 3 Commit
Your hand — dropping 2
9Three Chances 5Three Chances 2Three Chances
Undrawn pool — slot 1 chosen (still hidden)
1? 2? 3? 4?
step 2 · drop marked red, slot chosen in gold — value still hidden
You 0 – 0 Opp

Pre-game · committed

You drew the 10

Only you can see this. The opponent knows a swap happened, nothing more.

Drop Pick slot Commit
You drew 10Three Chances Into your hand: 10 · dropped 2 · fee 0.20 charged
step 3 · reveal — swapper only, no cancel
You 0 – 0 Opp

Pre-game · committed

You drew the 1

The gamble can miss. The fee is charged either way — that is the risk you took.

You drew 1Three Chances Into your hand: 1 · dropped 2 · fee 0.20 charged
reveal · the losing gamble — no take-back

Mid-game modal — the 1-1 window

Only reachable at 1-1, before round 3, and only if the swap was not spent pre-game. One card left in hand, so there is nothing to choose about the drop — the modal opens straight at "pick a slot". No "save for later": this is the last window. The old copy, "Last chance to fix", implied you could see what you were fixing toward. You can't — so it now names the gamble.

You 1 – 1 Opp Swap

1-1 · before the decider

One card, one blind gamble

Your last card decides it. Trade it for a face-down one — sight unseen — or play it.

Your last card
2Three Chances
Undrawn pool — face down · tap a slot to gamble on
1? 2? 3? 4?
mid-game · pick a slot to gamble on
You 1 – 1 Opp

1-1 · commit

Play the decider blind?

Slot 1 chosen — still hidden. Commit and the decider is played with whatever you drew.

Returns to pool 2 Plays the decider ?
Swap fee 2% of your 10.00 bet · charged win or lose 0.20
mid-game · commit — the incoming card is a face-down "?"
You 1 – 1 Opp

1-1 · no swap left

No swap left

You used your swap before round 1. The decider is played as dealt.

Your last card
7Three Chances
Undrawn pool — locked, face down
1? 2? 3? 4?
mid-game · swap already spent (engine-enforced)

Blind swap — what each side sees

The swapper gets a private reveal of the card they drew. The opponent gets a neutral event indicator: a swap happened, in this window — no cards, no fee, no direction. It is styled neutral, not gold, because there is nothing in it to act on. This is the whole point of the redesign: the swap stops being an information leak.

2 10 Swap complete You drew 10 · returned 2 · fee 0.20
swapper's own view · private reveal (shows their card)
Opponent swapped Pre-game window · cards hidden
opponent's view · neutral, no card data
Opponent swapped at 1-1 The decider is played · their card unknown
opponent's view · mid-game, still no card
Opponent kept their hand No swap this window
opponent's view · declined / kept

Why the opponent indicator is not gold

In the old design the opponent notification was gold and held on-screen for 2.5s, because it carried a real card the player had to memorise. That card is gone. The indicator now reports an event, so it drops to a neutral frame, a short hold, and no held-card animation. Gold is reserved for what the player can act on; a swap they can't see isn't that.

Commit → reveal · animation

Full spec in design/motion.md §15 (commit → reveal) and §16 (opponent-side event). Summary below.

The blind commit is one beat, the reveal is the payoff

On commit, the dropped card leaves the hand toward the pool while the chosen face-down slot lifts toward the hand — paths crossing, both still face down. The incoming card lands in the hand and only then flips: a 400ms Y-axis flip with a slight overshoot (tc-reveal-pop), revealing the value to the swapper alone. The fee pulses gold once as it is charged. There is no confirm-after-reveal state to animate — the commit is the point of no return, so the reveal has nothing to undo.

Opponent side loses the memorise-the-card hold

The opponent no longer sees a card cross the table. Their indicator simply slides down from the top edge, holds ~1.2s (down from 2.5s — there is nothing to memorise), and slides out. Reduced-motion: it fades in and out at final position. This also reclaims the timing-budget headroom the old 3.2s reveal was eating from the swap window.

Swap affordance — Card Selection header

Persistent, so a player always knows whether they still hold their swap. Unchanged by the blind redesign — the chip never named a card.

Swap 0.20 available · tappable
Reserved for 1-1 saved for later · dashed border
Swap now 1-1 1-1 window open · pulsing
Swap used pre-game spent pre-game
Swap used 1-1 spent mid-game
Swap declined declined · forfeited for the match

Layout at 390px — face-down fit check

Nothing breaks on width, but two things move

A card back is dimensionally identical to a face — same box, same radius — so the four-card pool row is the same width it was: at --tc-card-w: 64px in the modal that is 4×64 + 3×8 = 280px, and on Card Selection at tc-card--sm (72px) it is 4×72 + 3×8 = 312px, both inside a 390px screen less its 16px gutters (358px usable). The ? glyph and slot index sit inside the card, adding no width. So the pool row itself needs no reflow.

Flags to hold

1 — The reveal card must fit vertically. The reveal panel adds a 72px×108px card plus two lines of copy where the old "take" grid used to be; at pre-game that is fine, but the mid-game urgent modal is the tallest variant, so the reveal there reuses the compact summary rather than a full card. 2 — The opponent indicator shrank (no minicards), so any header slot sized for the old two-card note now has slack — re-centre it rather than leaving a gap. 3 — Tap targets: a 64px back is a comfortable tap, but the 4 pool slots sit 8px apart; keep the 8px gap (not less) so a blind pick isn't a mis-tap on a card whose value you can't verify afterward.