/* Preloader logo & animation */
.preloader .preloader-logo {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
}

.preloader .preloader-logo img {
    max-width: 180px;
    height: auto;
    animation: preloaderLogoIn 0.6s ease-out forwards,
               preloaderLogoPulse 2s ease-in-out 0.7s infinite;
}

.preloader .preloader-logo::after {
    content: '';
    display: block;
    width: 0;
    height: 2px;
    margin: 20px auto 0;
    background: linear-gradient(90deg, transparent, #232324, transparent);
    animation: preloaderLine 1.2s ease-in-out 0.3s infinite;
}

@keyframes preloaderLogoIn {
    0% {
        opacity: 0;
        transform: scale(0.92);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes preloaderLogoPulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.78; }
}

@keyframes preloaderLine {
    0% { width: 0; opacity: 0; }
    50% { width: 80px; opacity: 1; }
    100% { width: 0; opacity: 0; }
}
