/* Animations and Keyframes */

/* Loading Animations */
@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes slideInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes slideInDown {
    from {
        opacity: 0;
        transform: translateY(-30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes slideInLeft {
    from {
        opacity: 0;
        transform: translateX(-30px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes titleSlideIn {
    0% {
        opacity: 0;
        transform: translateX(-50px) scale(0.95);
    }
    50% {
        opacity: 0.8;
        transform: translateX(-10px) scale(1.02);
    }
    100% {
        opacity: 1;
        transform: translateX(0) scale(1);
    }
}

@keyframes slideInRight {
    from {
        opacity: 0;
        transform: translateX(30px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes scaleIn {
    from {
        opacity: 0;
        transform: scale(0.9);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

/* Loading Progress Bar */
@keyframes progressLoad {
    0% {
        width: 0%;
    }
    25% {
        width: 30%;
    }
    50% {
        width: 60%;
    }
    75% {
        width: 85%;
    }
    100% {
        width: 100%;
    }
}

/* Floating Animations */
@keyframes float {
    0%, 100% {
        transform: translateY(0px);
    }
    50% {
        transform: translateY(-20px);
    }
}

@keyframes floatSlow {
    0%, 100% {
        transform: translate(-50%, -50%) translateY(0px);
    }
    33% {
        transform: translate(-50%, -50%) translateY(-15px);
    }
    66% {
        transform: translate(-50%, -50%) translateY(-5px);
    }
}

@keyframes floatMedium {
    0%, 100% {
        transform: translateY(0px);
    }
    50% {
        transform: translateY(-25px);
    }
}

/* Rotation Animations - REMOVED */

/* Pulse Animations */
@keyframes pulse {
    0%, 100% {
        opacity: 1;
        transform: scale(1);
    }
    50% {
        opacity: 0.8;
        transform: scale(1.05);
    }
}

@keyframes pulseGlow {
    0%, 100% {
        box-shadow: 0 0 20px rgba(40, 171, 255, 0.3);
    }
    50% {
        box-shadow: 0 0 40px rgba(40, 171, 255, 0.6);
    }
}

/* Holographic Title Color Shift */
@keyframes holoColorShift {
    0% {
        background-position: 0% 50%;
        filter: saturate(1.2) brightness(1.15) contrast(1.1) drop-shadow(0 0 15px rgba(0, 224, 255, 0.3));
    }
    25% {
        background-position: 25% 50%;
        filter: saturate(1.3) brightness(1.2) contrast(1.15) drop-shadow(0 0 20px rgba(30, 144, 255, 0.4));
    }
    50% {
        background-position: 50% 50%;
        filter: saturate(1.25) brightness(1.18) contrast(1.12) drop-shadow(0 0 18px rgba(100, 200, 255, 0.35));
    }
    75% {
        background-position: 75% 50%;
        filter: saturate(1.3) brightness(1.2) contrast(1.15) drop-shadow(0 0 22px rgba(30, 144, 255, 0.4));
    }
    100% {
        background-position: 100% 50%;
        filter: saturate(1.2) brightness(1.15) contrast(1.1) drop-shadow(0 0 15px rgba(255, 255, 255, 0.25));
    }
}

/* Particle Animations */
@keyframes particleFloat {
    0% {
        transform: translateY(100vh) translateX(0px);
        opacity: 0;
    }
    10% {
        opacity: 1;
    }
    90% {
        opacity: 1;
    }
    100% {
        transform: translateY(-100px) translateX(100px);
        opacity: 0;
    }
}

/* Grid Animation */
@keyframes gridPulse {
    0%, 100% {
        opacity: 0.1;
    }
    50% {
        opacity: 0.3;
    }
}

/* Scroll Indicator */
@keyframes bounce {
    0%, 20%, 50%, 80%, 100% {
        transform: translateY(0);
    }
    40% {
        transform: translateY(-10px);
    }
    60% {
        transform: translateY(-5px);
    }
}

/* Text Animations */
@keyframes typewriter {
    from {
        width: 0;
    }
    to {
        width: 100%;
    }
}

@keyframes blinkCursor {
    from, to {
        border-color: transparent;
    }
    50% {
        border-color: var(--accent-primary);
    }
}

/* Hover Animations */
@keyframes buttonHover {
    0% {
        transform: translateY(0);
        box-shadow: var(--shadow-md);
    }
    100% {
        transform: translateY(-2px);
        box-shadow: var(--shadow-xl);
    }
}

@keyframes cardHover {
    0% {
        transform: translateY(0) scale(1);
    }
    100% {
        transform: translateY(-5px) scale(1.02);
    }
}

/* Stagger Animation Classes */
.animate-stagger > * {
    opacity: 0;
    animation: slideInUp 0.6s ease-out forwards;
}

.animate-stagger > *:nth-child(1) { animation-delay: 0.1s; }
.animate-stagger > *:nth-child(2) { animation-delay: 0.2s; }
.animate-stagger > *:nth-child(3) { animation-delay: 0.3s; }
.animate-stagger > *:nth-child(4) { animation-delay: 0.4s; }
.animate-stagger > *:nth-child(5) { animation-delay: 0.5s; }
.animate-stagger > *:nth-child(6) { animation-delay: 0.6s; }

/* Utility Animation Classes */
.animate-fade-in {
    animation: fadeIn 0.6s ease-out;
}

.animate-slide-up {
    animation: slideInUp 0.6s ease-out;
}

.animate-slide-down {
    animation: slideInDown 0.6s ease-out;
}

.animate-slide-left {
    animation: slideInLeft 0.6s ease-out;
}

.animate-title-slide {
    animation: titleSlideIn 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

.animate-slide-right {
    animation: slideInRight 0.6s ease-out;
}

.animate-scale-in {
    animation: scaleIn 0.6s ease-out;
}

.animate-float {
    animation: float 3s ease-in-out infinite;
}

.animate-pulse {
    animation: pulse 2s ease-in-out infinite;
}

.animate-rotate {
    animation: pulse 2s ease-in-out infinite;
}

.animate-year-wiggle {
    animation: yearWiggle 3s ease-in-out infinite;
}

.animate-year-fade-in {
    animation: yearFadeIn 1.5s ease-out forwards;
}

/* Intersection Observer Animation Classes */
.fade-in-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.fade-in-on-scroll.visible {
    opacity: 1;
    transform: translateY(0);
}

.slide-in-left-on-scroll {
    opacity: 0;
    transform: translateX(-50px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.slide-in-left-on-scroll.visible {
    opacity: 1;
    transform: translateX(0);
}

.slide-in-right-on-scroll {
    opacity: 0;
    transform: translateX(50px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.slide-in-right-on-scroll.visible {
    opacity: 1;
    transform: translateX(0);
}

.scale-in-on-scroll {
    opacity: 0;
    transform: scale(0.8);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.scale-in-on-scroll.visible {
    opacity: 1;
    transform: scale(1);
}


/* Enhanced Loading Screen Animations */
@keyframes logoEntrance {
    0% {
        opacity: 0.8;
        transform: scale(0.3);
        filter: drop-shadow(0 0 0px rgba(40, 171, 255, 0));
    }
    20% {
        opacity: 0.9;
        transform: scale(1.1);
        filter: drop-shadow(0 0 15px rgba(40, 171, 255, 0.4));
    }
    40% {
        opacity: 1;
        transform: scale(1);
        filter: drop-shadow(0 0 20px rgba(40, 171, 255, 0.3));
    }
    50% {
        opacity: 1;
        transform: scale(1);
        filter: drop-shadow(0 0 20px rgba(40, 171, 255, 0.3));
    }
}

/* New animation for loaded logo that starts from hidden state */
@keyframes logoLoadedEntrance {
    0% {
        opacity: 0;
        transform: scale(0.8);
        filter: drop-shadow(0 0 0px rgba(0, 166, 81, 0));
    }
    30% {
        opacity: 0.9;
        transform: scale(1.05);
        filter: drop-shadow(0 0 15px rgba(0, 166, 81, 0.4));
    }
    60% {
        opacity: 1;
        transform: scale(1);
        filter: drop-shadow(0 0 20px rgba(0, 166, 81, 0.3));
    }
    100% {
        opacity: 1;
        transform: scale(1);
        filter: drop-shadow(0 0 20px rgba(0, 166, 81, 0.3));
    }
}

/* Progress bar pulse animation */
@keyframes progressPulse {
    0%, 100% {
        box-shadow: 0 0 10px rgba(0, 166, 81, 0.3);
    }
    50% {
        box-shadow: 0 0 20px rgba(0, 166, 81, 0.6);
    }
}

@keyframes spinRing {
    0% { transform: translate(-50%, -50%) scale(0.1); opacity: 1; }
    0.625% { transform: translate(-50%, -50%) scale(0.125); opacity: 0.9975; }
    1.25% { transform: translate(-50%, -50%) scale(0.15); opacity: 0.995; }
    1.875% { transform: translate(-50%, -50%) scale(0.175); opacity: 0.9925; }
    2.5% { transform: translate(-50%, -50%) scale(0.2); opacity: 0.99; }
    3.125% { transform: translate(-50%, -50%) scale(0.225); opacity: 0.9875; }
    3.75% { transform: translate(-50%, -50%) scale(0.25); opacity: 0.985; }
    4.375% { transform: translate(-50%, -50%) scale(0.275); opacity: 0.9825; }
    5% { transform: translate(-50%, -50%) scale(0.3); opacity: 0.98; }
    5.625% { transform: translate(-50%, -50%) scale(0.325); opacity: 0.9775; }
    6.25% { transform: translate(-50%, -50%) scale(0.35); opacity: 0.975; }
    6.875% { transform: translate(-50%, -50%) scale(0.375); opacity: 0.9725; }
    7.5% { transform: translate(-50%, -50%) scale(0.4); opacity: 0.97; }
    8.125% { transform: translate(-50%, -50%) scale(0.425); opacity: 0.9675; }
    8.75% { transform: translate(-50%, -50%) scale(0.45); opacity: 0.965; }
    9.375% { transform: translate(-50%, -50%) scale(0.475); opacity: 0.9625; }
    10% { transform: translate(-50%, -50%) scale(0.5); opacity: 0.96; }
    10.625% { transform: translate(-50%, -50%) scale(0.525); opacity: 0.9575; }
    11.25% { transform: translate(-50%, -50%) scale(0.55); opacity: 0.955; }
    11.875% { transform: translate(-50%, -50%) scale(0.575); opacity: 0.9525; }
    12.5% { transform: translate(-50%, -50%) scale(0.6); opacity: 0.95; }
    13.125% { transform: translate(-50%, -50%) scale(0.625); opacity: 0.9475; }
    13.75% { transform: translate(-50%, -50%) scale(0.65); opacity: 0.945; }
    14.375% { transform: translate(-50%, -50%) scale(0.675); opacity: 0.9425; }
    15% { transform: translate(-50%, -50%) scale(0.7); opacity: 0.94; }
    15.625% { transform: translate(-50%, -50%) scale(0.725); opacity: 0.9375; }
    16.25% { transform: translate(-50%, -50%) scale(0.75); opacity: 0.935; }
    16.875% { transform: translate(-50%, -50%) scale(0.775); opacity: 0.9325; }
    17.5% { transform: translate(-50%, -50%) scale(0.8); opacity: 0.93; }
    18.125% { transform: translate(-50%, -50%) scale(0.825); opacity: 0.9275; }
    18.75% { transform: translate(-50%, -50%) scale(0.85); opacity: 0.925; }
    19.375% { transform: translate(-50%, -50%) scale(0.875); opacity: 0.9225; }
    20% { transform: translate(-50%, -50%) scale(0.9); opacity: 0.92; }
    20.625% { transform: translate(-50%, -50%) scale(0.925); opacity: 0.9175; }
    21.25% { transform: translate(-50%, -50%) scale(0.95); opacity: 0.915; }
    21.875% { transform: translate(-50%, -50%) scale(0.975); opacity: 0.9125; }
    22.5% { transform: translate(-50%, -50%) scale(1.0); opacity: 0.91; }
    23.125% { transform: translate(-50%, -50%) scale(1.025); opacity: 0.9075; }
    23.75% { transform: translate(-50%, -50%) scale(1.05); opacity: 0.905; }
    24.375% { transform: translate(-50%, -50%) scale(1.075); opacity: 0.9025; }
    25% { transform: translate(-50%, -50%) scale(1.1); opacity: 0.9; }
    25.625% { transform: translate(-50%, -50%) scale(1.125); opacity: 0.8975; }
    26.25% { transform: translate(-50%, -50%) scale(1.15); opacity: 0.895; }
    26.875% { transform: translate(-50%, -50%) scale(1.175); opacity: 0.8925; }
    27.5% { transform: translate(-50%, -50%) scale(1.2); opacity: 0.89; }
    28.125% { transform: translate(-50%, -50%) scale(1.225); opacity: 0.8875; }
    28.75% { transform: translate(-50%, -50%) scale(1.25); opacity: 0.885; }
    29.375% { transform: translate(-50%, -50%) scale(1.275); opacity: 0.8825; }
    30% { transform: translate(-50%, -50%) scale(1.3); opacity: 0.88; }
    30.625% { transform: translate(-50%, -50%) scale(1.325); opacity: 0.8775; }
    31.25% { transform: translate(-50%, -50%) scale(1.35); opacity: 0.875; }
    31.875% { transform: translate(-50%, -50%) scale(1.375); opacity: 0.8725; }
    32.5% { transform: translate(-50%, -50%) scale(1.4); opacity: 0.87; }
    33.125% { transform: translate(-50%, -50%) scale(1.425); opacity: 0.8675; }
    33.75% { transform: translate(-50%, -50%) scale(1.45); opacity: 0.865; }
    34.375% { transform: translate(-50%, -50%) scale(1.475); opacity: 0.8625; }
    35% { transform: translate(-50%, -50%) scale(1.5); opacity: 0.86; }
    35.625% { transform: translate(-50%, -50%) scale(1.525); opacity: 0.8575; }
    36.25% { transform: translate(-50%, -50%) scale(1.55); opacity: 0.855; }
    36.875% { transform: translate(-50%, -50%) scale(1.575); opacity: 0.8525; }
    37.5% { transform: translate(-50%, -50%) scale(1.6); opacity: 0.85; }
    38.125% { transform: translate(-50%, -50%) scale(1.625); opacity: 0.8475; }
    38.75% { transform: translate(-50%, -50%) scale(1.65); opacity: 0.845; }
    39.375% { transform: translate(-50%, -50%) scale(1.675); opacity: 0.8425; }
    40% { transform: translate(-50%, -50%) scale(1.7); opacity: 0.84; }
    40.625% { transform: translate(-50%, -50%) scale(1.725); opacity: 0.8375; }
    41.25% { transform: translate(-50%, -50%) scale(1.75); opacity: 0.835; }
    41.875% { transform: translate(-50%, -50%) scale(1.775); opacity: 0.8325; }
    42.5% { transform: translate(-50%, -50%) scale(1.8); opacity: 0.83; }
    43.125% { transform: translate(-50%, -50%) scale(1.825); opacity: 0.8275; }
    43.75% { transform: translate(-50%, -50%) scale(1.85); opacity: 0.825; }
    44.375% { transform: translate(-50%, -50%) scale(1.875); opacity: 0.8225; }
    45% { transform: translate(-50%, -50%) scale(1.9); opacity: 0.82; }
    45.625% { transform: translate(-50%, -50%) scale(1.925); opacity: 0.8175; }
    46.25% { transform: translate(-50%, -50%) scale(1.95); opacity: 0.815; }
    46.875% { transform: translate(-50%, -50%) scale(1.975); opacity: 0.8125; }
    47.5% { transform: translate(-50%, -50%) scale(2.0); opacity: 0.81; }
    48.125% { transform: translate(-50%, -50%) scale(2.025); opacity: 0.8075; }
    48.75% { transform: translate(-50%, -50%) scale(2.05); opacity: 0.805; }
    49.375% { transform: translate(-50%, -50%) scale(2.075); opacity: 0.8025; }
    50% { transform: translate(-50%, -50%) scale(2.1); opacity: 0.8; }
    50.625% { transform: translate(-50%, -50%) scale(2.125); opacity: 0.7975; }
    51.25% { transform: translate(-50%, -50%) scale(2.15); opacity: 0.795; }
    51.875% { transform: translate(-50%, -50%) scale(2.175); opacity: 0.7925; }
    52.5% { transform: translate(-50%, -50%) scale(2.2); opacity: 0.79; }
    53.125% { transform: translate(-50%, -50%) scale(2.225); opacity: 0.7875; }
    53.75% { transform: translate(-50%, -50%) scale(2.25); opacity: 0.785; }
    54.375% { transform: translate(-50%, -50%) scale(2.275); opacity: 0.7825; }
    55% { transform: translate(-50%, -50%) scale(2.3); opacity: 0.78; }
    55.625% { transform: translate(-50%, -50%) scale(2.325); opacity: 0.7775; }
    56.25% { transform: translate(-50%, -50%) scale(2.35); opacity: 0.775; }
    56.875% { transform: translate(-50%, -50%) scale(2.375); opacity: 0.7725; }
    57.5% { transform: translate(-50%, -50%) scale(2.4); opacity: 0.77; }
    58.125% { transform: translate(-50%, -50%) scale(2.425); opacity: 0.7675; }
    58.75% { transform: translate(-50%, -50%) scale(2.45); opacity: 0.765; }
    59.375% { transform: translate(-50%, -50%) scale(2.475); opacity: 0.7625; }
    60% { transform: translate(-50%, -50%) scale(2.5); opacity: 0.76; }
    60.625% { transform: translate(-50%, -50%) scale(2.525); opacity: 0.7575; }
    61.25% { transform: translate(-50%, -50%) scale(2.55); opacity: 0.755; }
    61.875% { transform: translate(-50%, -50%) scale(2.575); opacity: 0.7525; }
    62.5% { transform: translate(-50%, -50%) scale(2.6); opacity: 0.75; }
    63.125% { transform: translate(-50%, -50%) scale(2.625); opacity: 0.7475; }
    63.75% { transform: translate(-50%, -50%) scale(2.65); opacity: 0.745; }
    64.375% { transform: translate(-50%, -50%) scale(2.675); opacity: 0.7425; }
    65% { transform: translate(-50%, -50%) scale(2.7); opacity: 0.74; }
    65.625% { transform: translate(-50%, -50%) scale(2.725); opacity: 0.7375; }
    66.25% { transform: translate(-50%, -50%) scale(2.75); opacity: 0.735; }
    66.875% { transform: translate(-50%, -50%) scale(2.775); opacity: 0.7325; }
    67.5% { transform: translate(-50%, -50%) scale(2.8); opacity: 0.73; }
    68.125% { transform: translate(-50%, -50%) scale(2.825); opacity: 0.7275; }
    68.75% { transform: translate(-50%, -50%) scale(2.85); opacity: 0.725; }
    69.375% { transform: translate(-50%, -50%) scale(2.875); opacity: 0.7225; }
    70% { transform: translate(-50%, -50%) scale(2.9); opacity: 0.72; }
    70.625% { transform: translate(-50%, -50%) scale(2.925); opacity: 0.7175; }
    71.25% { transform: translate(-50%, -50%) scale(2.95); opacity: 0.715; }
    71.875% { transform: translate(-50%, -50%) scale(2.975); opacity: 0.7125; }
    72.5% { transform: translate(-50%, -50%) scale(3.0); opacity: 0.71; }
    73.125% { transform: translate(-50%, -50%) scale(3.025); opacity: 0.7075; }
    73.75% { transform: translate(-50%, -50%) scale(3.05); opacity: 0.705; }
    74.375% { transform: translate(-50%, -50%) scale(3.075); opacity: 0.7025; }
    75% { transform: translate(-50%, -50%) scale(3.1); opacity: 0.7; }
    75.625% { transform: translate(-50%, -50%) scale(3.125); opacity: 0.6975; }
    76.25% { transform: translate(-50%, -50%) scale(3.15); opacity: 0.695; }
    76.875% { transform: translate(-50%, -50%) scale(3.175); opacity: 0.6925; }
    77.5% { transform: translate(-50%, -50%) scale(3.2); opacity: 0.69; }
    78.125% { transform: translate(-50%, -50%) scale(3.225); opacity: 0.6875; }
    78.75% { transform: translate(-50%, -50%) scale(3.25); opacity: 0.685; }
    79.375% { transform: translate(-50%, -50%) scale(3.275); opacity: 0.6825; }
    80% { transform: translate(-50%, -50%) scale(3.3); opacity: 0.68; }
    80.625% { transform: translate(-50%, -50%) scale(3.325); opacity: 0.6775; }
    81.25% { transform: translate(-50%, -50%) scale(3.35); opacity: 0.675; }
    81.875% { transform: translate(-50%, -50%) scale(3.375); opacity: 0.6725; }
    82.5% { transform: translate(-50%, -50%) scale(3.4); opacity: 0.67; }
    83.125% { transform: translate(-50%, -50%) scale(3.425); opacity: 0.6675; }
    83.75% { transform: translate(-50%, -50%) scale(3.45); opacity: 0.665; }
    84.375% { transform: translate(-50%, -50%) scale(3.475); opacity: 0.6625; }
    85% { transform: translate(-50%, -50%) scale(3.5); opacity: 0.66; }
    85.625% { transform: translate(-50%, -50%) scale(3.525); opacity: 0.6575; }
    86.25% { transform: translate(-50%, -50%) scale(3.55); opacity: 0.655; }
    86.875% { transform: translate(-50%, -50%) scale(3.575); opacity: 0.6525; }
    87.5% { transform: translate(-50%, -50%) scale(3.6); opacity: 0.65; }
    88.125% { transform: translate(-50%, -50%) scale(3.625); opacity: 0.6475; }
    88.75% { transform: translate(-50%, -50%) scale(3.65); opacity: 0.645; }
    89.375% { transform: translate(-50%, -50%) scale(3.675); opacity: 0.6425; }
    90% { transform: translate(-50%, -50%) scale(3.7); opacity: 0.64; }
    90.625% { transform: translate(-50%, -50%) scale(3.725); opacity: 0.6375; }
    91.25% { transform: translate(-50%, -50%) scale(3.75); opacity: 0.635; }
    91.875% { transform: translate(-50%, -50%) scale(3.775); opacity: 0.6325; }
    92.5% { transform: translate(-50%, -50%) scale(3.8); opacity: 0.63; }
    93.125% { transform: translate(-50%, -50%) scale(3.825); opacity: 0.6275; }
    93.75% { transform: translate(-50%, -50%) scale(3.85); opacity: 0.625; }
    94.375% { transform: translate(-50%, -50%) scale(3.875); opacity: 0.6225; }
    95% { transform: translate(-50%, -50%) scale(3.9); opacity: 0.62; }
    95.625% { transform: translate(-50%, -50%) scale(3.925); opacity: 0.6175; }
    96.25% { transform: translate(-50%, -50%) scale(3.95); opacity: 0.615; }
    96.875% { transform: translate(-50%, -50%) scale(3.975); opacity: 0.6125; }
    97.5% { transform: translate(-50%, -50%) scale(4.0); opacity: 0.61; }
    98.125% { transform: translate(-50%, -50%) scale(4.025); opacity: 0.6075; }
    98.75% { transform: translate(-50%, -50%) scale(4.05); opacity: 0.605; }
    99.375% { transform: translate(-50%, -50%) scale(4.075); opacity: 0.6025; }
    100% { transform: translate(-50%, -50%) scale(4.1); opacity: 0.6; }
}

@keyframes pulseRing {
    0% {
        transform: translate(-50%, -50%) scale(0.9);
        opacity: 0.6;
    }
    100% {
        transform: translate(-50%, -50%) scale(1.3);
        opacity: 0;
    }
}

@keyframes rotateBackground {
    0% {
        transform: scale(1);
    }
    100% {
        transform: scale(1.05);
    }
}

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

@keyframes progressShine {
    0% {
        left: -100%;
        opacity: 0;
    }
    20% {
        opacity: 1;
    }
    80% {
        opacity: 1;
    }
    100% {
        left: 100%;
        opacity: 0;
    }
}

/* Enhanced Progress Load Animation - Slow Start, Fast Finish */
@keyframes progressLoad {
    0% {
        width: 0%;
        background: var(--primary-teal);
    }
    10% {
        width: 5%;
        background: var(--primary-teal);
    }
    20% {
        width: 12%;
        background: var(--primary-teal);
    }
    30% {
        width: 20%;
    }
    40% {
        width: 30%;
    }
    50% {
        width: 45%;
    }
    60% {
        width: 65%;
    }
    70% {
        width: 80%;
    }
    80% {
        width: 90%;
    }
    90% {
        width: 95%;
    }
    100% {
        width: 100%;
        background: var(--primary-teal);
    }
}

/* Year 2025 Animation - Subtle wiggle effect */
@keyframes yearWiggle {
    0%, 100% {
        transform: translateX(0) scale(1);
        opacity: 1;
    }
    25% {
        transform: translateX(-2px) scale(1.02);
        opacity: 0.95;
    }
    50% {
        transform: translateX(2px) scale(1.02);
        opacity: 0.9;
    }
    75% {
        transform: translateX(-1px) scale(1.01);
        opacity: 0.95;
    }
}

/* Year 2025 Fade-in Animation */
@keyframes yearFadeIn {
    0% {
        opacity: 0;
        transform: scale(0.8);
    }
    50% {
        opacity: 0.7;
        transform: scale(1.05);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}

}
