{% extends "core/base.html" %} {% load static %} {% block title_text %}Game Sign{% endblock title_text %} {% block header_text %}GameSign{% endblock header_text %} {% block content %} {# Two-phase picker. Landing renders the DRY table hex (1-chair) w. a #} {# central SCAN SIGN btn; the stage frame above previews the user's #} {# saved sig if any. Clicking SCAN SIGN swaps to picker phase: the hex #} {# hides, the card grid appears below the stage. Selection is a two-step #} {# click on the thumbnail itself (matching room sig-select): click thumb #} {# → OK btn appears; click OK → lock (stat block + FLIP + SAVE SIGN #} {# enable + NVM appears for deselect). #} {# "Significator" is preserved at the storage layer (User.significator); #} {# this billboard surface re-brands to "Sign". #}
{# Stage frame — always reserved at the top of the page; SAVE SIGN + #} {# NVM ride along to its right (sig-select-style). The stage card #} {# itself starts hidden + appears on hover/preview or saved-sig #} {# preview; .sig-stage--frozen is added on OK confirm + cleared by #} {# NVM. data-polarity lives on .my-sign-page so descendant .sig-card #} {# / .sig-stage-card both pick up polarity-themed CSS rules. #}
{# FLIP — bottom-left of the stage card. Visible only after lock #} {# (.sig-stage--frozen). #}

Emanation

    Reversal

      {% include "apps/gameboard/_partials/_sig_fyi_panel.html" with panel_id="id_my_sign_fyi_panel" %}
      {# SAVE SIGN + NVM form lives inside the stage so the layout #} {# matches the room's sig-select: btn sits adjacent to the stat #} {# block. Disabled until a card is OK-confirmed. #}
      {% csrf_token %}
      {# Landing phase — DRY table hex w. a single chair + central SCAN #} {# SIGN btn. Reuses the room's hex shell (.room-shell > .room-table #} {# > .room-table-scene > .table-hex-border > .table-hex > #} {# .table-center) + room.js's scaleTable() for viewport-fluid sizing. #}
      {# Single founder chair — solo-coded but extensible to the #} {# 6-chair friend-invite plan in [[project-my-sea-roadmap]]. #}
      {# Picker phase — card grid, hidden until SCAN SIGN click. Each #} {# .sig-card gets .sig-card-actions w. OK + NVM buttons (CSS gates #} {# visibility via .sig-focused → OK / .sig-reserved--own → NVM). #} {# Picker JS — phase swap (landing → picker), hover preview, two-step #} {# OK/NVM-on-thumbnail selection cycle, FLIP polarity animation lifted #} {# from game-kit.js's _flipActive, SPIN orientation toggle. data- #} {# polarity moved to the page wrapper so descendant .sig-card + #} {# .sig-stage-card both pick up the polarity-themed CSS rules. #} {# Brief intro banner — Default deck warning. See sprint-4a-follow. #} {% if show_backup_intro_banner %} {% endif %}
      {% endblock content %}