html {
    --client-width: 375;
    --px: calc(calc(1 / var(--client-width)) * 100vw);
}

html,
body {
    height: 100vh;
    font-family: inherit;
}

#app,
#app .app-content {
    height: 100%;
}

.page {
    height: 100%;
    display: flex;
    flex-direction: column;
    position: relative;
}

.page>.page-content {
    width: 100%;
    flex: 1 1 0;
    overflow: auto;
    position: relative;
}

.page .page-title {
    max-width: calc(100% - 32px);
    width: max-content;
    font-size: calc(20 * var(--px));
    font-weight: 700;
    color: #fff;
    padding: calc(10 * var(--px)) calc(16 * var(--px));
    background-color: #286AE8;
    border-radius: calc(999 * var(--px));
    position: absolute;
    top: calc(56 * var(--px));
    left: 50%;
    transform: translateX(-50%);
    z-index: 999;
}

.page .page-title .inner-text {
    padding: 0 calc(20 * var(--px));
    flex: 0 0 auto;
}

.page .page-title img {
    height: calc(20 * var(--px));
}

.page .page-content .path {
    position: relative;
    overflow: hidden;
}

.page .page-content .path .study-path {
    width: 100vw;
    min-height: 100vh;
    display: block;
    margin: auto;
    position: relative;
}

.page .page-content .path .compare {
    position: absolute;
    left: 0;
    top: 0;
    z-index: -1;
    opacity: 0;
}

.page>.page-content::-webkit-scrollbar {
    display: none;
}

.page__bg {
    background: url(../images/page-bg.png) no-repeat center top / cover;
}

img {
    max-width: 100%;
}

button {
    background-color: transparent;
    outline: none;
    border: none;
}

.btn {
    display: block;
    color: #fff;
    font-size: calc(14 * var(--px));
    padding: calc(10 * var(--px)) calc(26 * var(--px));
    margin: calc(20 * var(--px)) auto 0;
    border-radius: calc(60 * var(--px));
    position: relative;
    overflow: hidden;
}

.btn>span {
    position: relative;
    z-index: 2;
}

.btn::before {
    content: '';
    width: 100%;
    height: 100%;
    background-color: #286AE8;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    opacity: 1;
    transition: opacity .5s linear;
}

.btn:active::before {
    opacity: .8;
}

/* transition 动画 */
.fade-enter-active,
.fade-leave-active {
    transition: opacity .5s;
}

.fade-enter,
.fade-leave-to {
    opacity: 0;
}

@supports (display: flex) {
    .flex {
        display: flex;
    }

    .flex-s-c {
        display: flex;
        justify-content: flex-start;
        align-items: center;
    }

    .flex-s-s {
        display: flex;
        justify-content: flex-start;
        align-items: flex-start;
    }

    .flex-e {
        display: flex;
        justify-content: flex-end;
        align-items: center;
    }

    .flex-sb {
        display: flex;
        justify-content: space-between;
    }

    .flex-sb-c {
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    .flex-sb-e {
        display: flex;
        justify-content: space-between;
        align-items: flex-end;
    }

    .flex-c-c {
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .flex-col {
        display: flex;
        flex-direction: column;
    }

    .flex-col-c {
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .flex-c-sb {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
    }

    .flex-c-c-s {
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        align-items: center;
    }

    .flex-c-sb-c {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        align-items: center;
    }

    .flex-col-c-c {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
    }

    .flex-col-e {
        display: flex;
        flex-direction: column;
        justify-content: flex-end;
    }

    .flex-wrap {
        flex-wrap: wrap;
    }
}

@supports (display: grid) {
    .g-c-5 {
        display: grid;
        grid-template-columns: repeat(5, 1fr);
    }

    .g-c-4 {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
    }

    .g-c-2 {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
    }

    .g-c-3 {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
    }

    .g-c-4 {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
    }
}

@media screen and (min-width: 525px) {
    html {
        --px: 1px;
    }
}