{# HyperWeave Badge Frame — Paradigm-dispatched (Principle 26, Session 2A+2B).

   Session 2A+2B migration: templates no longer check data presence or genome
   identity. The genome declares `paradigms.badge = "default" | "chrome" | ...`
   and the template resolves `frames/badge/{paradigm}-content.j2` directly.

   Built-in paradigms:
     "default" → brutalist partial (flat, two-panel, sharp separator)
     "chrome"  → chrome partial (envelope gradient, well, bevel filter)

   Custom genomes may declare their own paradigm slugs; the referenced partial
   file must exist under `frames/badge/`.

   Specimens: badge-final.svg (chrome), badge_*.svg (brutalist).
   Extends document.svg.j2. #}
{% extends "document.svg.j2" %}

{% block defs %}
{% include "frames/badge/" ~ (paradigm | default("default")) ~ "-defs.j2" %}
{% endblock %}

{% block content %}
{% set h = height | default(20) %}
{% set accent_w = accent_bar_width | default(4) %}

{% include "frames/badge/" ~ (paradigm | default("default")) ~ "-content.j2" %}

{# Border motion SMIL overlay (shared across all paradigms) #}
{% if motion_border_defs | default('') %}
<defs>{{ motion_border_defs | safe }}</defs>
{% endif %}
{% if motion_border_overlay | default('') %}
{{ motion_border_overlay | safe }}
{% endif %}
{% endblock %}
