/*
  ABA Public Website — EZRA heartbeat (checkpoint D).
  Rules and @keyframes copied from the approved final source (mobile-correction-proofs-v2/mobile-hero-proof-v2.html);
  only class names were renamed (lt→ezra-letter, lt-e→ezra-e …, co→ezra-core, lip→ezra-lip, lit→ezra-lit,
  gl→ezra-glow). Keyframe bodies are byte-identical. Cycle 22.8s, first delay 1.5s; each letter appears at peak 1
  (x1.16), releases (0.5s), peak 2 (x1.22, 0.9s), settles dark (1.9s); full word holds to 12.2s, fades to 13.2s,
  quiet to 22.8s, repeats. The ABA/B geometry has no animation.
  Tamir decision: NO prefers-reduced-motion substitute; no Replay/Pause control in the site.
*/
.ezra-core{fill:#23170A}
.ezra-lip{fill:#FFF1D6;opacity:.32}
.ezra-lit{fill:#FFE6BA;opacity:0}
.ezra-glow{fill:#FFD38F;opacity:0}
.ezra-letter{opacity:0;transform-box:fill-box;transform-origin:50% 50%}
.ezra-e{animation:hbE 22.8s cubic-bezier(.45,0,.55,1) 1.5s infinite}
.ezra-z{animation:hbZ 22.8s cubic-bezier(.45,0,.55,1) 1.5s infinite}
.ezra-r{animation:hbR 22.8s cubic-bezier(.45,0,.55,1) 1.5s infinite}
.ezra-a{animation:hbA 22.8s cubic-bezier(.45,0,.55,1) 1.5s infinite}
.ezra-e .ezra-glow,.ezra-e .ezra-lit{animation:glE 22.8s cubic-bezier(.45,0,.55,1) 1.5s infinite}
.ezra-z .ezra-glow,.ezra-z .ezra-lit{animation:glZ 22.8s cubic-bezier(.45,0,.55,1) 1.5s infinite}
.ezra-r .ezra-glow,.ezra-r .ezra-lit{animation:glR 22.8s cubic-bezier(.45,0,.55,1) 1.5s infinite}
.ezra-a .ezra-glow,.ezra-a .ezra-lit{animation:glA 22.8s cubic-bezier(.45,0,.55,1) 1.5s infinite}
@keyframes hbE{0%{opacity:0;transform:scale(1.16)}0.0439%{opacity:1;transform:scale(1.16)}0.4386%{opacity:1;transform:scale(1.16)}2.193%{opacity:1;transform:scale(1)}3.9474%{opacity:1;transform:scale(1.22)}8.3333%{opacity:1;transform:scale(1)}53.5088%{opacity:1;transform:scale(1)}57.8947%{opacity:0;transform:scale(1)}100%{opacity:0;transform:scale(1)}}
@keyframes hbZ{0%,11.4035%{opacity:0;transform:scale(1.16)}11.4474%{opacity:1;transform:scale(1.16)}11.8421%{opacity:1;transform:scale(1.16)}13.5965%{opacity:1;transform:scale(1)}15.3509%{opacity:1;transform:scale(1.22)}19.7368%{opacity:1;transform:scale(1)}53.5088%{opacity:1;transform:scale(1)}57.8947%{opacity:0;transform:scale(1)}100%{opacity:0;transform:scale(1)}}
@keyframes hbR{0%,22.807%{opacity:0;transform:scale(1.16)}22.8509%{opacity:1;transform:scale(1.16)}23.2456%{opacity:1;transform:scale(1.16)}25%{opacity:1;transform:scale(1)}26.7544%{opacity:1;transform:scale(1.22)}31.1404%{opacity:1;transform:scale(1)}53.5088%{opacity:1;transform:scale(1)}57.8947%{opacity:0;transform:scale(1)}100%{opacity:0;transform:scale(1)}}
@keyframes hbA{0%,34.2105%{opacity:0;transform:scale(1.16)}34.2544%{opacity:1;transform:scale(1.16)}34.6491%{opacity:1;transform:scale(1.16)}36.4035%{opacity:1;transform:scale(1)}38.1579%{opacity:1;transform:scale(1.22)}42.5439%{opacity:1;transform:scale(1)}53.5088%{opacity:1;transform:scale(1)}57.8947%{opacity:0;transform:scale(1)}100%{opacity:0;transform:scale(1)}}
@keyframes glE{0%{opacity:0}0.0439%{opacity:1}0.4386%{opacity:1}2.193%{opacity:0}3.9474%{opacity:1}8.3333%,100%{opacity:0}}
@keyframes glZ{0%,11.4035%{opacity:0}11.4474%{opacity:1}11.8421%{opacity:1}13.5965%{opacity:0}15.3509%{opacity:1}19.7368%,100%{opacity:0}}
@keyframes glR{0%,22.807%{opacity:0}22.8509%{opacity:1}23.2456%{opacity:1}25%{opacity:0}26.7544%{opacity:1}31.1404%,100%{opacity:0}}
@keyframes glA{0%,34.2105%{opacity:0}34.2544%{opacity:1}34.6491%{opacity:1}36.4035%{opacity:0}38.1579%{opacity:1}42.5439%,100%{opacity:0}}
