{% load static %} {% comment %} DRAW SEA — Sea Select felt (2026-06-07), mirroring Sky Select's form→wheel scroll-snap. The felt starts with the spread OPTIONS (.sea-options-col, page 1): the .sea-select combobox (the two Celtic Cross spreads only) + a mini shape preview + OK + AUTO DRAW + DEL. Clicking OK confirms the spread → the options shunt DOWN and the spread CROSS (.sea-cross-col, w. the Gravity/Levity deck stacks) takes page 1 via scroll-snap (scroll down to find the options again). NO modal, NO corner NVM. The burger #id_sea_btn is the post-completion REOPEN affordance (active only once the spread is complete, like the sky btn) — NOT active during drawing. Each draw persists onto the seat's Character.celtic_cross via epic:sea_save. `?seat` threads the CARTE-selected seat onto the action URLs. {% endcomment %}
{# ── OPTIONS section — page 1 initially; shunts to page 2 on OK. The select #} {# form + preview + the OK / AUTO DRAW / DEL actions. NO deck stacks here. #}

{{ stack_reversal_pct|default:25 }}% reversals

{# Two Celtic Cross 6-card spreads only (user-spec 2026-06-07). #} {# Combobox + OK on one row — OK confirms the spread → shunts. #} {# OK gains .btn-disabled + × the moment the first card is drawn #} {# (the spread is then locked, the select disables, DEL enables). #}
{# Miniaturized spread preview — shape only, never dealt to. Shows #} {# the chosen spread's shape before OK reveals the real cross. #} {% include "apps/gameboard/_partials/_sea_spread_preview.html" with preview_spread=sea_default_spread sig=my_tray_sig %}
{# AUTO DRAW commits the remaining hand in one POST + animates onto #} {# the cross (confirms the spread first if not yet). DEL clears. #}
{# ── CROSS section — hidden until OK; then order:-1 takes page 1. The REAL #} {# deal target (.my-sea-cross) + the Gravity/Levity deck stacks (FLIP). #}
{% include "apps/gameboard/_partials/_my_sea_slot.html" with position="crown" saved=saved_by_position.crown crossing=False %}
{% include "apps/gameboard/_partials/_my_sea_slot.html" with position="leave" saved=saved_by_position.leave crossing=False %}
{# Center significator — supply the card-FACE image when the sig's #} {# deck has one (mirrors my_sea); else the corner-rank + suit-icon #} {# text thumbnail. my_tray_sig.deck_variant is the card's OWN deck #} {# (Sig Select picks from the Role Select contributed deck). #}
{% if my_tray_sig %} {% if my_tray_sig.deck_variant.has_card_images %} {{ my_tray_sig.name }} {% else %} {{ my_tray_sig.corner_rank }} {% if my_tray_sig.suit_icon %}{% endif %} {% endif %} {% endif %}
{% include "apps/gameboard/_partials/_my_sea_slot.html" with position="cover" saved=saved_by_position.cover crossing=False %}
{% include "apps/gameboard/_partials/_my_sea_slot.html" with position="cross" saved=saved_by_position.cross crossing=True %}
{% include "apps/gameboard/_partials/_my_sea_slot.html" with position="loom" saved=saved_by_position.loom crossing=False %}
{% include "apps/gameboard/_partials/_my_sea_slot.html" with position="lay" saved=saved_by_position.lay crossing=False %}
{# ALWAYS two stacks (Gravity + Levity) — the gamer draws from EITHER #} {# populated half (sea_deck returns both), even a CARTE monodeck. #}
DECKS
Gravity
Levity
{# Sea stage — portaled big-card viewer (position:fixed, escapes the snap). #} {% include "apps/gameboard/_partials/_sea_stage.html" %}
{# ── Sea glow handoff — the SEA glow-machine does NOT fire while drawing. The #} {# post-completion CASCADE (in the picker IIFE above) STARTS it on the burger #} {# as the felt eases out (DRAW SEA → SEED MAP), mirroring CAST SKY's burger → #} {# sky-btn cue. This IIFE only carries the handoff: burger → sea_btn → #} {# .sea-select → end, so the user is led to reopen + review their sea. #}