* {
    margin: 0;
    padding: 0;
}

html, body {
    height: 100vh;

    background-color: var(--primary-body-background-color);

    font-family: Arial, Helvetica, sans-serif;
    font-size: 15px;
    
    -webkit-tap-highlight-color: transparent;

    color: var(--primary-color);

    user-select: none;

    scrollbar-width: none;

    overflow: hidden;
}

::-webkit-scrollbar {
    display: none;
}

:root {
    --primary-body-background-color: #f8f8f8;
    --primary-main-background-color: #ffffff;
    --primary-secondary-background-color: #f8f8f8;
    --primary-color: #303030;
    --primary-menu-gradient: linear-gradient(to right, rgba(255, 255, 255, 1), rgba(255, 255, 255, 0));
    --primary-a-color: #303030;
    --primary-barrier-background-color: rgba(0, 0, 0, 0.2);
}

.dark-mode {
    --primary-body-background-color: #333333;
    --primary-main-background-color: #454647;
    --primary-secondary-background-color: #525354;
    --primary-color: #ffffff;
    --primary-menu-gradient: linear-gradient(to right, rgba(69, 70, 71, 1), rgba(0, 0, 0, 0));
    --primary-a-color: #ffffff;
    --primary-barrier-background-color: rgba(255, 255, 255, 0.2);
}

header {
    width: 100vw;
    height: 64px;

    background-color: var(--primary-main-background-color);

    display: flex;
    justify-content: center;
    align-items: center;
}

.header-scope-box {
    width: 1200px;
    height: 64px;

    display: flex;
    align-items: center;
}

.header-scope-left-box {
    width: 220px;
    height: 64px;

    display: flex;
    align-items: center;
}

.header-scope-left-logo-box {
    width: 32px;
    height: 32px;

    margin-left: 8px;
    margin-right: 8px;

    display: flex;
    justify-content: center;
    align-items: center;
}

.header-scope-left-logo-box > img {
    width: 32px;
    height: 32px;

    object-fit: cover;

    display: inline-block;

    transition: transform 0.3s ease;
}

.header-scope-left-logo-box > img:hover {
    animation: rotateAnimation 3s linear infinite;
}

@keyframes rotateAnimation {
    0% {
        transform: rotate(0deg);
    }

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

.header-scope-left-logo-name-box {
    width: 164px;
    height: 32px;

    display: flex;
    align-items: center;
}

.header-scope-left-logo-name-box > span {
    font-size: 18px;
    font-weight: bold;

    display: inline-block;

    transition: transform 0.3s ease;
}

.header-scope-left-logo-name-box > span:hover {
    transform: rotate(-10deg);
}

.header-scope-center-box {
    width: 724px;
    height: 64px;

    margin-left: 18px;
    margin-right: 18px;

    display: flex;
    justify-content: center;
    align-items: center;
}

.header-scope-right-box {
    width: 220px;
    height: 64px;

    margin-left: auto;

    display: flex;
    justify-content: right;
    align-items: center;
}

.header-scope-right-theme-box {
    border-radius: 24px;

    width: 32px;
    height: 32px;

    margin-right: 16px;

    display: flex;
    justify-content: center;
    align-items: center;

    cursor: pointer;
}

.header-scope-right-theme-box > img {
    width: 32px;
    height: 32px;

    object-fit: cover;
}

.header-scope-right-setup-box {
    border-radius: 24px;

    width: 32px;
    height: 32px;

    margin-right: 8px;

    display: flex;
    justify-content: center;
    align-items: center;

    cursor: pointer;

    transition: transform 3s ease;
}

.header-scope-right-setup-box:hover {
    transform: rotate(360deg);
}

.header-scope-right-setup-box > img {
    width: 32px;
    height: 32px;

    object-fit: cover;
}

main {
    width: 100vw;
    height: calc(100vh - 100px);

    margin-top: 18px;

    display: flex;
    justify-content: center;
}

.main-scope-box {
    width: 1200px;
    height: calc(100vh - 100px);

    display: flex;
    align-items: center;
}

.main-scope-left-box {
    width: 220px;
    height: calc(100vh - 100px);
}

.main-scope-left-menu-box {
    border-radius: 18px;

    width: 220px;
    height: calc((100vh - 100px) / 2);

    background-color: var(--primary-main-background-color);

    display: flex;
    justify-content: center;
    align-items: center;
}

.main-scope-left-menu-overflow-box {
    width: 184px;
    height: calc((100vh - 100px) / 2 - 36px);

    overflow: auto;
}

.main-scope-left-menu-overflow-box div:first-child {
    margin-top: 0;
}

.main-scope-left-menu-common-box {
    border-radius: 8px;

    width: 184px;
    height: 44px;

    margin-top: 18px;

    display: flex;
    align-items: center;

    cursor: pointer;

    transition: background-color 0.3s;
}

.main-scope-left-menu-common-box:hover {
    background-color: var(--primary-secondary-background-color);
}

.selected-main-scope-left-menu-common-box {
    background-color: var(--primary-secondary-background-color) !important;
}

.main-scope-left-menu-common-logo-box {
    width: 28px;
    height: 28px;

    margin-left: 8px;
    margin-right: 8px;

    display: flex;
    justify-content: center;
    align-items: center;
}

.main-scope-left-menu-common-logo-box > img {
    width: 28px;
    height: 28px;

    object-fit: cover;
}

.main-scope-left-menu-common-logo-name-box {
    width: 132px;
    height: 28px;

    display: flex;
    align-items: center;
}

.main-scope-left-menu-common-logo-name-overflow-box {
    width: 132px;
    height: 28px;

    display: flex;
    align-items: center;

    overflow: auto;

    white-space: nowrap;
}

.main-scope-center-box {
    border-radius: 18px;

    width: 724px;
    height: calc(100vh - 100px);

    background-color: var(--primary-main-background-color);

    margin-left: 18px;
    margin-right: 18px;
}

.main-scope-center-menu-box {
    width: 688px;
    height: 44px;

    margin-top: 18px;
    margin-left: 18px;

    display: flex;
    align-items: center;
}

.main-scope-center-menu-left-box {
    width: 344px;
    height: 44px;

    display: flex;
    align-items: center;
}

.main-scope-center-menu-left-logo-box {
    width: 28px;
    height: 28px;

    margin-left: 8px;
    margin-right: 8px;

    display: flex;
    justify-content: center;
    align-items: center;
}

.main-scope-center-menu-left-logo-box > img {
    width: 28px;
    height: 28px;

    object-fit: cover;
}

.main-scope-center-menu-left-logo-name-box {
    width: 292px;
    height: 28px;

    display: flex;
    align-items: center;
}

.main-scope-center-menu-left-logo-name-overflow-box {
    width: 292px;
    height: 28px;

    display: flex;
    align-items: center;

    overflow: auto;

    white-space: nowrap;
}

.main-scope-center-menu-right-box {
    width: 344px;
    height: 44px;

    display: flex;
    align-items: center;
}

.main-scope-center-menu-right-type-box {
    border-radius: 44px;

    width: auto;
    height: 44px;

    max-width: 344px;

    background-color: var(--primary-body-background-color);

    margin-left: auto;

    display: flex;
    justify-content: center;
    align-items: center;
}

.main-scope-center-menu-right-type-overflow-box {
    border-radius: 28px;

    width: auto;
    height: 28px;

    max-width: 328px;

    margin-left: 8px;
    margin-right: 8px;

    display: flex;
    align-items: center;

    overflow: auto;

    white-space: nowrap;
}

.main-scope-center-menu-right-type-overflow-box > *:not(:first-child) {
    margin-left: 8px;
}

.main-scope-center-menu-right-type-common-box {
    border-radius: 14px;

    height: 28px;

    padding-left: 12px;
    padding-right: 12px;

    display: flex;
    justify-content: center;
    align-items: center;

    cursor: pointer;

    transition: background-color 0.3s;
}

.main-scope-center-menu-right-type-common-box:hover {
    background-color: var(--primary-main-background-color);
}

.main-scope-center-menu-overflow-box {
    width: 688px;
    height: calc(100vh - 180px);

    margin-left: 18px;

    overflow: auto;
}

.main-scope-center-menu-overflow-box > a {
    text-decoration: none;

    color: var(--primary-a-color)
}

.main-scope-center-menu-content-box {
    width: 688px;
    height: auto;

    padding-top: 8px;
    padding-bottom: 8px;

    display: flex;
    align-items: center;
}

.main-scope-center-menu-content-serial-box {
    width: 28px;
    height: 28px;

    margin-left: 8px;
    margin-right: 8px;

    display: flex;
    justify-content: center;
    align-items: center;
}

.main-scope-center-menu-content-serial-core-box {
    border-radius: 12px;

    width: 24px;
    height: 24px;

    background-color: #efeff5;

    display: flex;
    justify-content: center;
    align-items: center;
}

.main-scope-center-menu-content-serial-core-box > span {
    font-size: 13px;
}

.main-scope-center-menu-content-text-box {
    width: 636px;
    height: auto;

    display: flex;
    align-items: center;

    line-height: 24px;
}

.main-scope-right-box {
    width: 220px;
    height: calc(100vh - 100px);
}

.main-scope-right-sentence-box {
    border-radius: 18px;

    width: 220px;
    height: 56px;

    background-color: var(--primary-main-background-color);

    /*background: radial-gradient(circle, #ffffff 8%, transparent 100%);*/

    display: flex;
    justify-content: center;
    align-items: center;

    cursor: pointer;

    /*animation: shake 1s infinite;*/
}

/* 抖动效果 */
@keyframes shake {
    0% { transform: translateX(0); }
    20% { transform: translateX(-4px); }
    40% { transform: translateX(4px); }
    60% { transform: translateX(-3px); }
    80% { transform: translateX(3px); }
    100% { transform: translateX(0); }
}

.main-scope-right-sentence-text-box {
    width: 184px;
    height: 20px;

    display: flex;
    justify-content: center;
    align-items: center;
}

.main-scope-right-sentence-text-box > span {
    font-size: 18px;

    line-height: 20px;

    background: linear-gradient(
            270deg,
            #ff0000,
            #ff9900,
            #ffff00,
            #33cc33,
            #3399ff,
            #9900ff,
            #ff0099,
            #ff0000
    );

    background-size: 400% 400%;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: rainbow 8s ease infinite;
}

@keyframes rainbow {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}

.main-scope-right-motto-box {
    border-radius: 18px;

    width: 220px;
    height: 76px;

    background-color: var(--primary-main-background-color);

    display: flex;
    justify-content: center;
    align-items: center;

    margin-top: 18px;
}

.main-scope-right-motto-text-box {
    width: 184px;
    height: 40px;

    display: flex;
    align-items: center;
}

.main-scope-right-motto-text-box > span {
    font-size: 13px;

    line-height: 20px;
}

.barrier {
    width: 100vw;
    height: 100vh;

    background-color: var(--primary-barrier-background-color);

    position: absolute;
    top: 0;
    left: 0;

    display: flex;
    justify-content: center;
    align-items: center;

    visibility: hidden;

    transition: visibility 1s, opacity 1s;
    opacity: 0;
}

.barrier-setup-box {
    border-radius: 18px;

    width: 660px;
    height: 462px;

    background-color: var(--primary-main-background-color);
}

.barrier-setup-base-box, .barrier-setup-menu-box {
    border-radius: 8px;

    width: 184px;
    height: 44px;

    background-color: var(--primary-secondary-background-color);

    margin-top: 18px;
    margin-bottom: 18px;

    margin-left: 238px;

    display: flex;
    justify-content: center;
    align-items: center;
}

.barrier-setup-base-container-box {
    border-radius: 8px;

    width: 624px;
    height: 80px;

    background-color: var(--primary-secondary-background-color);

    margin-left: 18px;

    display: flex;
    align-items: center;
}

.barrier-setup-base-container-common-box {
    border-radius: 8px;

    width: 184px;
    height: 44px;

    background-color: var(--primary-main-background-color);

    margin-left: 18px;

    display: flex;
    align-items: center;
}

.barrier-setup-base-container-common-text-box {
    width: 60px;
    height: 28px;

    margin-left: 8px;

    display: flex;
    align-items: center;
}

.barrier-setup-base-container-common-switch-box {
    border-radius: 14px;

    width: 46px;
    height: 28px;

    margin-left: 8px;

    display: flex;
    justify-content: center;
    align-items: center;

    cursor: pointer;
}

.barrier-setup-menu-container-box {
    border-radius: 8px;

    width: 624px;
    height: 204px;

    background-color: var(--primary-secondary-background-color);

    margin-left: 18px;

    display: flex;
    justify-content: center;
    align-items: center;
}

.barrier-setup-menu-container-overflow-box {
    width: 588px;
    height: 168px;

    overflow: auto;
}

.barrier-setup-menu-container-common-box {
    border-radius: 8px;

    width: 184px;
    height: 44px;

    background-color: var(--primary-main-background-color);

    margin-top: 18px;

    display: flex;
    align-items: center;

    float: left;

    cursor: pointer;
}

.barrier-setup-menu-container-common-box:nth-child(-n+3) {
    margin-top: 0;
}

.barrier-setup-menu-container-common-box:nth-child(3n+2) {
    margin-left: 18px;
    margin-right: 18px;
}

.selected-barrier-setup-menu-container-common-box {
    background: var(--primary-menu-gradient);
}

.barrier-setup-menu-container-common-logo-box {
    width: 28px;
    height: 28px;

    margin-left: 8px;
    margin-right: 8px;

    display: flex;
    justify-content: center;
    align-items: center;
}

.barrier-setup-menu-container-common-logo-box > img {
    width: 28px;
    height: 28px;

    object-fit: cover;
}

.barrier-setup-menu-container-common-logo-name-box {
    width: 132px;
    height: 28px;

    display: flex;
    align-items: center;
}

.barrier-setup-menu-container-common-logo-name-overflow-box {
    width: 132px;
    height: 28px;

    display: flex;
    align-items: center;

    overflow: auto;

    white-space: nowrap;
}

.feedback {
    border-radius: 22px;

    width: 44px;
    height: 44px;

    background-color: #ffffff;

    position: absolute;
    bottom: 40px;
    right: 40px;

    display: flex;
    justify-content: center;
    align-items: center;

    box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);

    cursor: pointer;
}

.feedback > img {
    width: 28px;
    height: 28px;

    object-fit: cover;
}

.loader {
    width: 48px;
    height: 48px;

    position: fixed;

    top: 50%;
    left: 50%;

    transform: translate(-50%, -50%);

    z-index: 1024;

    visibility: hidden;

    transition: visibility 1s, opacity 1s;
    opacity: 0;
}

.loader:before {
    content: '';

    width: 48px;
    height: 5px;

    background: #FFD700;

    position: absolute;

    top: 60px;
    left: 0;

    border-radius: 50%;
    animation: shadow324 0.5s linear infinite;
}

.loader:after {
    content: '';

    width: 100%;
    height: 100%;

    background: #FFD700;

    position: absolute;

    top: 0;
    left: 0;

    border-radius: 50%;

    animation: jump7456 0.5s linear infinite;
}

@keyframes jump7456 {
    15% {
        border-bottom-right-radius: 50%;
    }

    25% {
        transform: translateY(9px) rotate(22.5deg);
    }

    50% {
        transform: translateY(18px) scale(1, .9) rotate(45deg);
        border-bottom-right-radius: 40px;
    }

    75% {
        transform: translateY(9px) rotate(67.5deg);
    }

    100% {
        transform: translateY(0) rotate(90deg);
    }
}

@keyframes shadow324 {
    0%, 100% {
        transform: scale(1, 1);
    }

    50% {
        transform: scale(1.2, 1);
    }
}
