*, *::before, *::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    --font-ar: 'Cairo', sans-serif;
}

body {
    font-family: var(--font-ar);
    min-height: 100vh;
}

#loader-overlay {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100vh;
    background: #000;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

#loader-brand {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 10001;
    animation: brandPulse 1.5s ease-in-out infinite alternate;
}

#brand-img {
    width: clamp(250px, 40vw, 500px);
    height: auto;
    filter: drop-shadow(0 0 30px rgba(33, 150, 243, 0.5));
}

@keyframes brandPulse {
    0% {
        filter: drop-shadow(0 0 20px rgba(33, 150, 243, 0.3));
        transform: translate(-50%, -50%) scale(1);
    }

    100% {
        filter: drop-shadow(0 0 50px rgba(0, 212, 255, 0.6));
        transform: translate(-50%, -50%) scale(1.03);
    }
}

#loader-plane {
    position: absolute;
    bottom: -150px;
    left: -150px;
    z-index: 10002;
    opacity: 0;
    transform: scale(0.15);
    pointer-events: none;
}

#plane-img {
    width: 300px;
    height: auto;
    filter: drop-shadow(0 0 20px rgba(33, 150, 243, 0.6));
}

@keyframes planeFlyAcross {
    0% {
        bottom: -150px;
        left: -150px;
        transform: scale(0.15) rotate(15deg);
        opacity: 0;
    }

    5% {
        opacity: 1;
    }

    40% {
        bottom: 30%;
        left: 30%;
        transform: scale(0.8) rotate(5deg);
        opacity: 1;
    }

    70% {
        bottom: 50%;
        left: 50%;
        transform: scale(3) rotate(-2deg);
        opacity: 1;
    }

    100% {
        bottom: 40%;
        left: 45%;
        transform: scale(12) rotate(-5deg);
        opacity: 1;
    }
}

@keyframes overlayFadeOut {
    0% {
        opacity: 1;
        visibility: visible;
    }

    100% {
        opacity: 0;
        visibility: hidden;
    }
}

#loader-overlay.animate-plane #loader-plane {
    animation: planeFlyAcross 1.4s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

#loader-overlay.animate-plane #loader-brand {
    animation: brandFadeUnderPlane 1.4s ease-in forwards;
}

@keyframes brandFadeUnderPlane {
    0% {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }

    60% {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }

    100% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.95);
    }
}

#loader-overlay.fade-out {
    animation: overlayFadeOut 0.5s ease-out forwards;
}

@media (max-width: 768px) {
    #brand-img {
        width: clamp(180px, 60vw, 320px);
    }

    #plane-img {
        width: 220px;
    }
}

.project-extra {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 0.35s ease, transform 0.35s ease;
}

.project-extra.project-revealed {
    opacity: 1;
    transform: translateY(0);
}
