/* 全局样式开始 */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html,body {
    width: 100%;
    height: 100%;
}
/* 全局样式结束 */

.app{
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.loader, .main{
    position: absolute;
    width: 100%;
    height: 100%;
}


/* 加载页开始 */
.loader{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background-color: #000;
}

.loader:before{
    content: "";
    width: 25px;
    height: 25px;
    border: 3px solid #1A1A1A;
    border-top-color: #fff;
    border-radius: 50%;
    animation: loader-spin 1s linear infinite;
}

.loader:after{
    content: attr(data-title);
    color: #999999;
    font-size: 12px;
    letter-spacing: 2px;
    text-transform: uppercase;
    animation: loader-fadeBlur 2s ease-in-out infinite;
    margin-top: 20px;
}
/* 加载页结束 */

.main{
    display: none;
}

/* 旋转关键帧 */
@keyframes loader-spin {
    from {
        transform: rotate(0deg); 
    }
    to {
        transform: rotate(360deg);
    }
}
/* 模糊淡入淡出关键帧 */
@keyframes loader-fadeBlur {
    0%,
    100% {
        opacity: 1;
        filter: blur(0);
    }
    50% {
        opacity: 0.4;
        filter: blur(2px);
    }
}