/******************************************************************************/
/*  google-spinner-loading.css                                                */
/*----------------------------------------------------------------------------*/
/*  Full-page "Google spinner" loading overlay, shown while a page's initial  */
/*  HTML/CSS/JS/data finish loading. Spinner circle + colors adapted from     */
/*  the reference "Google Spinner" demo (C:/Github/Loading/css/google-       */
/*  spinner.css). The #loader overlay wrapper + fade-out + dark-mode         */
/*  background are custom, matching Zulma-EN's own theme system              */
/*  (html[data-theme="dark"], see assets/styles/theme-dark.css).             */
/*                                                                            */
/*  Hidden via assets/js/page-loader.js, which adds the .loader-hidden       */
/*  class once the page has finished loading.                                */
/******************************************************************************/

:root {
    --spinner-red: #ea4335;
    --spinner-blue: #4285f4;
    --spinner-yellow: #fbbc05;
    --spinner-green: #34a853;
}

#loader {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #F0F0F6; /* matches body background (style.css) */
    transition: opacity .4s ease, visibility .4s ease;
}

html[data-theme="dark"] #loader {
    background-color: #0F1117; /* matches html[data-theme="dark"] body */
}

/* Toggled by assets/js/page-loader.js once the page has finished loading */
#loader.loader-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.spinner {
    position: relative;
    margin: 0 auto;
    width: 90px;
}

.spinner::before {
    content: "";
    display: block;
    padding-top: 100%;
}

.spinner .circular {
    animation: spinner-rotate 2s linear infinite;
    height: 100%;
    transform-origin: center center;
    width: 100%;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
}

.spinner .path {
    stroke-dasharray: 1, 200;
    stroke-dashoffset: 0;
    animation: spinner-dash 1.5s ease-in-out infinite, spinner-color 6s ease-in-out infinite;
    stroke-linecap: round;
}

@keyframes spinner-rotate {
    100% {
        transform: rotate(360deg);
    }
}

@keyframes spinner-dash {
    0% {
        stroke-dasharray: 1, 200;
        stroke-dashoffset: 0;
    }
    50% {
        stroke-dasharray: 89, 200;
        stroke-dashoffset: -35px;
    }
    100% {
        stroke-dasharray: 89, 200;
        stroke-dashoffset: -124px;
    }
}

@keyframes spinner-color {
    100%, 0% {
        stroke: var(--spinner-red);
    }
    40% {
        stroke: var(--spinner-blue);
    }
    66% {
        stroke: var(--spinner-green);
    }
    80%, 90% {
        stroke: var(--spinner-yellow);
    }
}

@media (max-width: 767.98px) {
    .spinner {
        width: 64px;
    }
}

/******** END OF FILE *********************************************************/
