{# Primer horizontal-marquee defs — substrate-aware (dark + light) on the flat
   profile. Modeled on cellular-defs.j2 (the shared dispatcher provides only
   uid-scroll-clip; everything else is defined here).

   Emits:
     - font_faces: embeds Inter so the scroll text ships self-contained.
     - reduced-motion guard (house pattern from cellular-defs): stills the
       shared SMIL scroll track. The global accessibility.css SMIL halt is also
       present, so this is belt-and-suspenders + satisfies the invariant inside
       the paradigm defs.
     - uid-mq-bg: vertical band gradient. Light variants use the variant's
       panel_gradient_stops (white -> tint); dark derives surface-alt -> surface.
       Distinguished by FIELD presence (panel_gradient_stops exists on light
       variants only) — same gate the primer badge uses, never a substrate
       conditional (Invariant 12).
     - uid-fade-l / uid-fade-r: horizontal edge fades (surface <-> transparent)
       so passing text dissolves into the band at both readout-window edges.
     - uid-mq-shadow: light-only soft two-layer drop shadow (gated on
       panel_gradient_stops) lifting the paper band.

   Primer carries NO decorative @keyframes flourish — its only motion is the
   scroll; the band stays quiet/editorial, matching the porcelain specimen. #}
<style>{{ font_faces | safe }}
/* Identity-cap pulse — a single quiet breathing dot (decorative, NOT the state
   cascade), mirroring the porcelain specimen's p-breathe. Reduced-motion stills it. */
.hw-mq-pulse{animation:hw-mq-breathe 3s ease-in-out infinite;will-change:opacity}
@keyframes hw-mq-breathe{0%,100%{opacity:.4}50%{opacity:1}}
@media(prefers-reduced-motion:reduce){
  [data-hw-zone="scroll-track"]{animation:none!important}
  .hw-mq-pulse{animation:none}
}
</style>
<linearGradient id="{{ uid }}-mq-bg" x1="0" y1="0" x2="0" y2="1">
{% if panel_gradient_stops %}
{% for stop in panel_gradient_stops %}  <stop offset="{{ stop.offset }}" stop-color="{{ stop.color }}"/>
{% endfor %}{% else %}  <stop offset="0%" stop-color="var(--dna-surface-alt)"/>
  <stop offset="100%" stop-color="var(--dna-surface)"/>
{% endif %}</linearGradient>
<linearGradient id="{{ uid }}-fade-l" x1="0" y1="0" x2="1" y2="0">
  <stop offset="0%" stop-color="var(--dna-surface)"/>
  <stop offset="100%" stop-color="var(--dna-surface)" stop-opacity="0"/>
</linearGradient>
<linearGradient id="{{ uid }}-fade-r" x1="0" y1="0" x2="1" y2="0">
  <stop offset="0%" stop-color="var(--dna-surface)" stop-opacity="0"/>
  <stop offset="100%" stop-color="var(--dna-surface)"/>
</linearGradient>
{% if panel_gradient_stops %}
<filter id="{{ uid }}-mq-shadow" x="-10%" y="-30%" width="120%" height="170%">
  <feDropShadow dx="0" dy="2" stdDeviation="4" flood-color="{{ _genome_raw.shadow_color }}" flood-opacity="0.06"/>
  <feDropShadow dx="0" dy="6" stdDeviation="12" flood-color="{{ _genome_raw.shadow_color }}" flood-opacity="0.04"/>
</filter>
{% endif %}
