/* ===== Archi Infotech — keyframes & motion classes ===== */

@keyframes pulseGlow{ 0%,100%{ box-shadow:0 8px 24px rgba(232,185,62,.35);} 50%{ box-shadow:0 8px 34px rgba(232,185,62,.7);} }

@keyframes gridDrift{ from{ background-position:0 0,0 0; } to{ background-position:56px 56px,56px 56px; } }

@keyframes raySpin{ to{ transform:rotate(360deg); } }

@keyframes scrollLine{ 0%{ opacity:.2; } 50%{ opacity:1; } 100%{ opacity:.2; } }

@keyframes blink{ 50%{ opacity:0; } }

@keyframes loadIt{ to{ width:100%; } }

@keyframes sheen{ 0%{ transform:translateX(-100%); } 100%{ transform:translateX(100%); } }

@keyframes ledBlink{ 0%,100%{ opacity:.3; } 50%{ opacity:1; box-shadow:0 0 8px currentColor; } }

@keyframes cityPing{ 0%{ box-shadow:0 0 0 0 rgba(23,195,178,.5);} 100%{ box-shadow:0 0 0 14px rgba(23,195,178,0);} }

@keyframes mapPing{ 0%{ opacity:.8; r:4; } 100%{ opacity:0; r:16; } }

@keyframes goldBorder{ 0%,100%{ opacity:.35; } 50%{ opacity:.85; } }

@keyframes nodePulse{ 0%,100%{ filter:drop-shadow(0 0 0 rgba(23,195,178,0)); } 50%{ filter:drop-shadow(0 0 6px rgba(23,195,178,.8)); } }

@keyframes feedIn{ to{ opacity:1; transform:translateX(0); } }

