Sea Select: post-completion cascade — felt eases out → DRAW SEA → SEED MAP — TDD

Mirror CAST SKY's post-save cascade for the sea phase. When the 6-card spread
completes (live FLIP of the 6th card / AUTO DRAW finishing): linger ~3s on the
felt → the felt eases OUT (`.sea-page--cascade-out`, revealing the table-hex) →
DRAW SEA gives way to SEED MAP + the sea glow fires on the burger (handoff →
sea_btn) → +3s → SEED MAP eases IN. Same shape as CAST SKY → sky-btn glow →
DRAW SEA.

- `_room_hex_center.html`: SEED MAP joins the hex-phase-stack; DRAW SEA goes
  --out once `hand_complete`, SEED MAP --out until then (a reload of a complete
  sea lands on SEED MAP server-side = the cascade's end-state). SEED MAP → the
  Voronoi map (roadmap step 21) is a stub — it only needs to APPEAR here
- `_sea_overlay.html`: `_setComplete(on, live)` runs `_startSeaCascade()` on the
  LIVE completion (FLIP / AUTO DRAW pass `live=true`; init does not, so a reload
  doesn't re-animate). The completion-glow IIFE no longer self-starts on the
  data-state transition — the cascade adds `glow-handoff` to the burger; the IIFE
  keeps only the burger → sea_btn → .sea-select handoff
- `.sea-page--cascade-out` SCSS (mirrors `.sky-page--cascade-out`)
- ITs: SEED MAP --out pre-completion (DRAW SEA in); SEED MAP in + DRAW SEA --out
  when hand_complete. 952 epic+gameboard ITs + PickSeaAsyncTransitionTest(3) green

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Disco DeDisco
2026-06-07 23:03:17 -04:00
parent 0f57cae50d
commit cf84fdc992
4 changed files with 97 additions and 34 deletions

View File

@@ -103,6 +103,15 @@ html.sea-open .position-strip {
visibility: hidden;
}
// Post-completion cascade ease-out — once the 6-card spread is complete the felt
// fades to transparent over ~0.5s (the JS _SEA_FELT_FADE timer) BEFORE sea-open
// is removed, revealing the table-hex with a soft dissolve (mirrors the CAST SKY
// post-save cascade's .sky-page--cascade-out).
.sea-page.sea-page--cascade-out {
opacity: 0;
transition: opacity 0.5s ease;
}
// ── Backdrop ──────────────────────────────────────────────────────────────────
.sky-backdrop {