{% if request.user.significator %}
{% with card=request.user.significator %}
{# Mirrors the my_sign.html `.sig-stage-card` layout — corner #}
{# top-left, name + polarity qualifier in the face, mirror #}
{# corner bottom-right (pre-rotated). Sized to fill the #}
{# applet's vertical aperture via container queries in #}
{# `_billboard.scss`. `significator_reversed` is the POLARITY #}
{# axis (True ↔ levity), so the saved sig is always upright #}
{# in its polarity — no `.stage-card--reversed` rotation. #}
{% if card.deck_variant.has_card_images %}
{% comment %}
Sprint A.6 — image-mode render mirrors my_sign.html's
.sig-stage-card--image treatment. Shares the SCSS rule
(comma-list selector) so the contour stroke + tray-card
silhouette black depth shadow + arcana stroke-color
come for free.
{% endcomment %}
{% if not card.deck_variant.is_polarized %}
{% comment %}
Non-polarized image deck: back-img element renders the
deck-back PNG that FLIP toggles to. Back-img stays gated
(back-img is meaningless for polarized decks or text-mode);
the FLIP btn itself moved OUT of this gate in polish-6 so
it renders for every card (per user-spec "allow the FLIP
btn everywhere"). The JS click handler is a no-op when no
back-img sibling exists.
{% endcomment %}
{% endif %}
{% else %}
{{ card.corner_rank }}
{% if card.suit_icon %}{% endif %}
{% comment %}
`request.user.sig_face` is the rendering payload from
`TarotCard.applet_face()` — mirrors `populateCard` in
`stage-card.js:135-144`:
• Polarity-split (cards 48-49, trumps 19-21):
single-line title, qualifier blank.
• Major + qualifier: title carries a trailing
comma + qualifier renders BELOW.
• Non-Major (middle court, Schizo / Nomad w. no
qualifier): qualifier renders ABOVE the title.
{% endcomment %}
{% with face=request.user.sig_face %}
{% if face.qualifier_first %}
{{ face.qualifier }}
{{ face.title }}
{% else %}
{{ face.title }}
{{ face.qualifier }}
{% endif %}
{% endwith %}
{{ card.get_arcana_display }}
{{ card.corner_rank }}
{% if card.suit_icon %}{% endif %}
{% endif %}
{% comment %}
Polish-6 — FLIP btn rendered UNCONDITIONALLY (was gated on
`has_card_images and not is_polarized`). Per user-spec
2026-05-25 PM "just allow the FLIP btn everywhere". JS
handler below picks behavior by sibling existence: back-img
present → flip-to-back animation; absent → no-op.
{% endcomment %}
{# Stat block — same shape as my_sign.html's `.sig-stat-block` #}
{# (Emanation face label + keyword list) but no SPIN/FYI btns #}
{# since the applet is a read-only preview. Saved sigs persist #}
{# only the polarity axis (FLIP), never the orientation axis #}
{# (SPIN), so always render the upright/emanation face. #}
{% comment %}
DRY stat-face — see `core/_partials/_stat_face.html`. The
applet is the only server-render consumer (no SPIN, single
emanation face); passes `card` so chip + title + arcana +
keywords are filled from `card.*` at render time.
{% endcomment %}
{% include "core/_partials/_stat_face.html" with face_modifier="upright" label_text="Emanation" card=card %}
{% comment %}
Polish-6 — applet FLIP btn handler. Mirrors my_sign.html's
`_flipToBackAnimated()` (rotateY 0→90→0 over 500ms, class
toggle at halfway, `data-flipping` attr for SCSS to hide the
btn during animation). Script is now UNGATED (was conditional
on `has_card_images and not is_polarized` like the FLIP btn
itself); per user-spec "allow the FLIP btn everywhere", the
handler always wires + gracefully no-ops when there's no
`.sig-stage-card-back-img` sibling to toggle.
{% endcomment %}
{% endwith %}
{% else %}