@keyframes scan-sweep {
    0% { transform: translateY(0); opacity: 0; }
    8% { opacity: 1; }
    50% { transform: translateY(85vh); opacity: 1; }
    92% { opacity: 1; }
    100% { transform: translateY(85vh); opacity: 0; }
}

@keyframes dot-pulse {
    0%, 100% { opacity: 0.25; transform: scale(0.9); }
    40% { opacity: 1; transform: scale(1.2); }
}

@keyframes stage-in {
    from { opacity: 0; transform: translateY(20px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes stage-out {
    from { opacity: 1; transform: translateY(0); }
    to   { opacity: 0; transform: translateY(-12px); }
}

@keyframes line-in {
    from { opacity: 0; transform: translateY(14px); filter: blur(8px); }
    to   { opacity: 1; transform: translateY(0); filter: blur(0); }
}

@keyframes ring-spin {
    from { transform: rotate(0); }
    to   { transform: rotate(360deg); }
}

@keyframes ring-spin-rev {
    from { transform: rotate(360deg); }
    to   { transform: rotate(0); }
}

@keyframes ring-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(255, 122, 24, 0.5); }
    50%      { box-shadow: 0 0 0 18px rgba(255, 122, 24, 0); }
}

@keyframes glow-breath {
    0%, 100% { opacity: 0.55; transform: scale(1); }
    50%      { opacity: 1;    transform: scale(1.04); }
}

@keyframes soft-glow-in {
    from { opacity: 0; transform: scale(0.5); }
    to   { opacity: 1; transform: scale(1); }
}

@keyframes drift {
    0%   { transform: translate(0, 0) rotate(0); }
    100% { transform: translate(-12px, 14px) rotate(180deg); }
}

@keyframes fragment-out {
    to { opacity: 0; transform: scale(0.4) rotate(45deg); filter: blur(6px); }
}

@keyframes bar-fill {
    from { width: 0%; }
    to   { width: var(--target, 100%); }
}

@keyframes flash-frame {
    0%   { opacity: 0; }
    20%  { opacity: 0.95; }
    100% { opacity: 0; }
}

@keyframes breathe-in-anim {
    from { transform: scale(0.65); }
    to   { transform: scale(1); }
}

@keyframes breathe-out-anim {
    from { transform: scale(1); }
    to   { transform: scale(0.65); }
}

@keyframes fade-up {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}
