/* =======================================================================
   File: utilities/animations.css                                                   
   Author: Émile SNYERS                                                    
   Date: 2025-08-16                                                       
   Version: v1.0.0                                                 
   Purpose: Définitions des animations keyframes utilisées par les composants.                                                  
   Notes: 
   - Code organisé par modules pour un projet plus professionnel.
   - Commentaires présents en tête de fichier et avant chaque bloc.
   - Les couleurs et styles initiaux sont conservés via des variables.
   ======================================================================= */
@keyframes rotate { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg);} }
@keyframes pulse { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.2); opacity: 0.7; } }
@keyframes scan { 0% { left: -100%; } 100% { left: 100%; } }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }
@keyframes fadeInDown { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes slideInLeft { from { opacity: 0; transform: translateX(-30px); } to { opacity: 1; transform: translateX(0); } }
@keyframes slideInRight { from { opacity: 0; transform: translateX(30px); } to { opacity: 1; transform: translateX(0); } }
@keyframes rotateIn { from { opacity: 0; transform: rotate(-180deg) scale(0); } to { opacity: 1; transform: rotate(0deg) scale(1); } }
@keyframes expandWidth { from { width: 0; } to { width: 100%; } }
@keyframes shimmer { 0% { left: -100%; } 100% { left: 100%; } }
@keyframes warningBlink { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.3; transform: scale(0.9); } }
@keyframes bounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes growHeight { from { height: 0; opacity: 0; } to { height: 100%; opacity: 1; } }
@keyframes pulseGlow { 0%, 100% { box-shadow: 0 0 5px var(--aperture-orange); } 50% { box-shadow: 0 0 20px var(--aperture-orange), 0 0 30px var(--aperture-orange); } }
@keyframes sweepRight { 0% { left: -100%; } 100% { left: 100%; } }
@keyframes iconPulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.1); } }
@keyframes terminalBlink { 0%, 50%, 100% { opacity: 1; } 25%, 75% { opacity: 0.3; } }
@keyframes stripeMove { 0% { transform: translateX(0); } 100% { transform: translateX(20px); } }
@keyframes glowPulse { 0%, 100% { text-shadow: 0 0 5px rgba(255, 107, 53, 0.5); } 50% { text-shadow: 0 0 20px rgba(255, 107, 53, 0.8), 0 0 30px rgba(78, 205, 196, 0.5); } }
@keyframes scanlineMove { 0% { transform: translateY(0); } 100% { transform: translateY(10px); } }
@keyframes fadeInRow { from { opacity: 0; transform: translateX(-20px); } to { opacity: 1; transform: translateX(0); } }
@keyframes borderGlow { 0%, 100% { opacity: 0; } 50% { opacity: 0.5; } }
/* ===== End of utilities/animations.css | Author: Émile SNYERS | Date: 2025-08-16 | v1.0.0 ===== */
