{# Chrome badge defs: satin envelope, shadow filter, well gradient, separator gradient.
   Guard on data presence (envelope_stops), not profile identity. #}
{# ── Satin chrome envelope (animated y1/y2) ── #}
<linearGradient id="{{ uid }}-env" x1="0" x2="0" y1="{{ gradient_y_neg_010 }}" y2="{{ gradient_y_090 }}">
{% for stop in envelope_stops | default([]) %}
  <stop offset="{{ stop.offset }}" stop-color="{{ stop.color }}"/>
{% endfor %}
  <animateTransform attributeName="gradientTransform" type="translate"
    values="0 -0.2; 0 0.2; 0 -0.2" dur="{{ chrome_rhythm | default('6s') }}"
    repeatCount="indefinite" calcMode="spline"
    keySplines="0.4 0 0.2 1;0.4 0 0.2 1"/>
</linearGradient>
{# ── Product-weight shadow (no specular at badge scale) ── #}
<filter id="{{ uid }}-sh" x="-3%" y="-4%" width="106%" height="112%">
  <feDropShadow dx="0" dy="1.5" stdDeviation="2" flood-color="var(--dna-shadow-color, black)" flood-opacity="{{ bevel_shadow_opacity | default('0.35') }}"/>
</filter>
{# ── Well gradient — genome-declared (required for chrome paradigm). ── #}
<linearGradient id="{{ uid }}-well" x1="0" x2="0" y1="0" y2="1">
  <stop offset="0%" stop-color="{{ well_top }}"/>
  <stop offset="100%" stop-color="{{ well_bottom }}"/>
</linearGradient>
{# ── Chrome text gradient for value ── #}
{% if chrome_text_gradient %}
<linearGradient id="{{ uid }}-ct" x1="0" y1="0" x2="1" y2="0">
{% for stop in chrome_text_gradient %}
  <stop offset="{{ stop.offset }}" stop-color="{{ stop.color }}"/>
{% endfor %}
</linearGradient>
{% endif %}
{# ── Separator gradient ── #}
<linearGradient id="{{ uid }}-sep" x1="0" y1="0" x2="0" y2="1">
  <stop offset="0%" stop-color="var(--dna-signal)" stop-opacity="0"/>
  <stop offset="30%" stop-color="var(--dna-signal)" stop-opacity="0.35"/>
  <stop offset="50%" stop-color="{{ specular_light }}" stop-opacity="0.45"/>
  <stop offset="70%" stop-color="var(--dna-signal)" stop-opacity="0.35"/>
  <stop offset="100%" stop-color="var(--dna-signal)" stop-opacity="0"/>
</linearGradient>
{# ── Hero text gradient — genome-declared (required for chrome paradigm). ── #}
<linearGradient id="{{ uid }}-ct-hero" x1="0" y1="0" x2="1" y2="0">
{% for stop in hero_text_gradient %}
  <stop offset="{{ stop.offset }}" stop-color="{{ stop.color }}"/>
{% endfor %}
</linearGradient>
{# ── Typography (class-based, scaled for 22px compositor badge).
   Magazine specimen uses 11/17 label/value at 200×52; compositor badge is
   125×22 (~40% of magazine scale), so sizes proportionally compress.
   Design intent preserved: Orbitron replaces Impact for values, skew removed.
   @font-face for bundled WOFF2 emitted so Orbitron actually loads. #}
<style>
{{ font_faces | safe }}
.{{ uid }}-label {
  font-family: var(--dna-font-display, 'Orbitron', 'Space Grotesk', sans-serif);
  font-size: 8.5px; font-weight: 700; letter-spacing: 0.10em;
}
.{{ uid }}-value {
  font-family: var(--dna-font-display, 'Orbitron', 'Space Grotesk', sans-serif);
  font-size: 10px; font-weight: 800; letter-spacing: 0.03em;
}
</style>
<clipPath id="{{ uid }}-clip"><rect width="{{ width }}" height="{{ height }}" rx="{{ chrome_corner | default('4') }}"/></clipPath>
