:root {
    --theme-color: #56CCF2;
    --light-background-color: #f8fafc;
    --light-loader-background-color: #1e293b0c;
    --dark-background-color: #262626;
    --dark-loader-background-color: #f5f5f50c;
    --loader-size: 4vh; /* old 32px */
    --loader-width: calc(var(--loader-size) * 0.2); /* old 6px */
    --loader-margin: 2vh; /* old 16px */
}

body {
    overflow: hidden;
    background-color: var(--light-background-color); /* 背景色を指定 */
}

.loader,
.loader:after {
    border-radius: 50%;
    width: calc(var(--loader-size) - var(--loader-width) * 2);
    height: calc(var(--loader-size) - var(--loader-width) * 2);
}

.loader {
    position: fixed;
    right: var(--loader-margin);
    bottom: var(--loader-margin);
    border-top: var(--loader-width) solid;
    border-left: var(--loader-width) solid;
    border-right: var(--loader-width) solid;
    border-bottom: var(--loader-width) solid;
    transform: translateZ(0);
    -ms-transform: translateZ(0);
    -webkit-transform: translateZ(0);
    animation: load8 1s infinite linear;
    -webkit-animation: load8 1s infinite linear;
}

@-webkit-keyframes load8 {
    0% {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
    }

    100% {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

@keyframes load8 {
    0% {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
    }

    100% {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

/*               */
/* theme setting */
/*               */

.light-theme {
    background-color: var(--light-background-color);
}

.light-theme .loader {
    border-left-color: var(--theme-color);
    border-top-color: var(--light-loader-background-color);
    border-right-color: var(--light-loader-background-color);
    border-bottom-color: var(--light-loader-background-color);
}

.dark-theme {
    background-color: var(--dark-background-color);
}

.dark-theme .loader {
    border-left-color: var(--theme-color);
    border-top-color: var(--dark-loader-background-color);
    border-right-color: var(--dark-loader-background-color);
    border-bottom-color: var(--dark-loader-background-color);
}
