{# Cellular icon defs — v0.3.0 visual refresh.

   Replaces the prior si1/si2/si3/sid animation system with cz1/cz2/cz3/cz4/czd
   per the v3-sulfur prototype. The keyframe is namespaced as ``czp`` (distinct
   from the chart/stats ``breathe-*`` keyframes) because the icon's pulse
   character is genuinely different — cells "blink" (very low floor 0.06,
   peaks at 0.65) rather than "breathe" (smooth oscillation around 0.6).

   The 5-class system (4 active phases + 1 dormant) lets the cell grid
   distribute animation across all 25 cells (5×5 grid) so no two adjacent
   cells animate in sync, breaking visible pulse waves. czd cells stay
   static at low opacity, reading as voids in the substrate.

   Outer-border / glyph fills are inline in the content template (info_accent
   / mid_accent flow as named context vars from the icon resolver), so this
   defs file only carries animation infrastructure. #}
<style>
.cz1{animation:czp {{ cellular_pulse_base_duration | default('6s') }} ease-in-out infinite;will-change:opacity}
.cz2{animation:czp {{ cellular_pulse_base_duration | default('6s') }} ease-in-out infinite 1.5s;will-change:opacity}
.cz3{animation:czp {{ cellular_pulse_base_duration | default('6s') }} ease-in-out infinite 3s;will-change:opacity}
.cz4{animation:czp {{ cellular_pulse_base_duration | default('6s') }} ease-in-out infinite 4.5s;will-change:opacity}
.czd{opacity:0.08}
@keyframes czp{0%,100%{opacity:.06}30%{opacity:.65}50%{opacity:.2}70%{opacity:.5}}
@media(prefers-reduced-motion:reduce){.cz1,.cz2,.cz3,.cz4{animation:none!important;opacity:0.5!important}}
</style>
