/* Preloader Styles - Only for Home Page */

/* Preloader Canvas */
.canvas {
    background: black;
    width: 100%;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999;
    display: flex;
    flex-flow: column;
    justify-content: center;
    align-items: center;
    transition: opacity 0.5s ease, visibility 0.5s ease;
    margin: 0;
    padding: 0;
}

/* Prevent body scroll when preloader is active */
body.preloader-active {
    overflow: hidden;
}

.canvas.fade-out {
    opacity: 0;
    visibility: hidden;
}

.canvas hr {
    border-color: white;
    margin: 0.5rem 0;
}

.topSection {
    display: flex;
    overflow: hidden;
}

.bottomSection {
    display: flex;
    overflow: hidden;
}

.canvas span {
    font-size: 50px;
    font-family: inherit;
    font-weight: 600;
    letter-spacing: 0.1em;
    animation-duration: 1s;
    animation-iteration-count: infinite;
    animation-timing-function: ease;
    animation-direction: alternate-reverse;
    animation-fill-mode: both;
    color: white;
}

.topSection span {
    animation-name: wave-up;
    transition: 1s;
    transform: translateY(1em);
}

.bottomSection span {
    animation-name: wave-down;
    opacity: 0.5;
}

@keyframes wave-up {
    from {
        transform: translateY(0em);
    }
    to {
        transform: translateY(1em);
    }
}

@keyframes wave-down {
    from {
        transform: translateY(0em) rotate(180deg) rotateY(180deg);
    }
    to {
        transform: translateY(-1em) rotate(180deg) rotateY(180deg);
    }
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .canvas span {
        font-size: 35px;
    }
}

@media (max-width: 480px) {
    .canvas span {
        font-size: 28px;
    }
}