/* BOOT SCREEN STYLES */

.boot-layer {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: var(--bg-boot);
    z-index: var(--z-boot);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    transition: opacity 800ms var(--ease-win);
    /* Slow fade out */
}

/* Boot Logo */
.boot-logo {
    width: 100px;
    height: 100px;
    margin-bottom: 80px;
    /* Space between logo and spinner */
}

.win-logo {
    width: 100%;
    height: 100%;
}

/* Boot Spinner */
.boot-spinner {
    position: relative;
    width: 44px;
    height: 44px;
    animation: rotate 4s infinite linear;
}

.spinner-dot {
    position: absolute;
    top: 50%;
    left: 50%;
    margin-left: -3px;
    margin-top: -3px;
    width: 6px;
    height: 6px;
    background: white;
    border-radius: 50%;
    opacity: 0;
    animation: spin 3s infinite cubic-bezier(0.2, 0.64, 0.81, 0.23);
}

.spinner-dot:nth-child(2) {
    animation-delay: 150ms;
}

.spinner-dot:nth-child(3) {
    animation-delay: 300ms;
}

.spinner-dot:nth-child(4) {
    animation-delay: 450ms;
}

.spinner-dot:nth-child(5) {
    animation-delay: 600ms;
}

@keyframes spin {
    0% {
        transform: rotate(0deg) translate(20px) rotate(0deg);
        opacity: 1;
    }

    100% {
        transform: rotate(360deg) translate(20px) rotate(-360deg);
        opacity: 1;
    }
}

/* More accurate orbit animation logic can be complex in CSS alone, 
   using a simpler decent approximation for now or we can refine it 
   to match the "chasing dots" look of Windows strictly. */

/* Refined Windows Spinner Keyframes */
@keyframes rotate {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}