/**
 * UI Interaction Animations
 * Provides visual feedback during the 5-second hold.
 */

/* Basis-Zustand während des Haltens */
.ui-holding {
    animation-duration: 1s;
    animation-iteration-count: infinite;
    transition: transform 0.3s ease;
}

/* Animation: Pulsieren (Standard) */
.ui-holding.pulse {
    animation-name: pulse-anim;
    animation-timing-function: ease-in-out;
}

@keyframes pulse-anim {
    0%, 100% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
    50% { opacity: 0.5; transform: translate(-50%, -50%) scale(0.95); }
}

/* Animation: Wackeln (Speziell für Digital Growth / Substrate) */
.ui-holding.shake {
    animation-name: shake-anim;
    animation-duration: 0.2s;
    animation-timing-function: linear;
}

@keyframes shake-anim {
    0% { transform: translate(-51%, -49%) rotate(0.5deg); }
    50% { transform: translate(-50.5%, -50.5%) rotate(0.2deg); }
    100% { transform: translate(-50%, -50%) rotate(0); }
}

/* Animation: Glitch (Speziell für Attractor Chaos) */
.ui-holding.glitch {
    animation-name: glitch-anim;
    animation-duration: 0.2s;
}

@keyframes glitch-anim {
    0%, 100% { transform: translate(-50%, -50%) skew(0deg); opacity: 1; }
    33% { transform: translate(-51%, -48%) skew(5deg); opacity: 0.8; }
    66% { transform: translate(-49%, -52%) skew(-5deg); }
}
