/* Shared active animation definitions. Timing and values are unchanged. */

/* Shared list-panel heading formerly repeated as inline declarations. */
.list-panel-title{font-size:28px;letter-spacing:-.04em;margin:0}

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

@keyframes visualFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}

@keyframes visualPulse{0%,100%{opacity:.48}50%{opacity:.72}}

@keyframes scanLight{0%,35%{transform:translateX(-65%) rotate(8deg);opacity:0}45%{opacity:1}70%,100%{transform:translateX(65%) rotate(8deg);opacity:0}}

@keyframes cardBreathe{0%,100%{border-color:rgba(255,255,255,.11);background:rgba(255,255,255,.07)}50%{border-color:rgba(77,227,255,.24);background:rgba(255,255,255,.09)}}

@keyframes barFlow{0%,100%{background-position:0% 50%;filter:saturate(1)}50%{background-position:100% 50%;filter:saturate(1.35)}}

@keyframes floatingCard{0%,100%{transform:translate(0,0)}50%{transform:translate(0,-12px)}}

@keyframes phoneFloat{0%,100%{transform:translate(0,0) rotate(0deg)}50%{transform:translate(6px,-8px) rotate(.6deg)}}

@keyframes pillGlow{0%,100%{background:rgba(255,255,255,.08)}50%{background:rgba(77,227,255,.10)}}

@keyframes pillScan{0%,45%{transform:translateX(-100%)}75%,100%{transform:translateX(100%)}}

@keyframes dotBlink{0%,100%{opacity:.35;transform:scale(1)}50%{opacity:.9;transform:scale(1.18)}}

@keyframes circuitDrift{
      0%{background-position:0 0,0 0,0 0,0 0,0 0,0 0}
      100%{background-position:420px 160px,-520px 220px,420px 160px,-520px 220px,620px -180px,-720px 240px}
    }

@keyframes iconPulse{0%,100%{box-shadow:0 0 0 rgba(77,227,255,0)}50%{box-shadow:0 0 32px rgba(77,227,255,.18)}}

@keyframes projectOrb{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-12px,12px) scale(1.08)}}

@keyframes fluidFloat{0%,100%{translate:0 0}50%{translate:0 -7px}}
