* {
    margin: 0;
    padding: 0;
    font-family:  "Microsoft YaHei", sans-serif;
}
html, body {
    height: 100%;
    width: 100%;
}

@media screen and (max-width: 768px)  {
    .container {
        flex-wrap: wrap;
    }
    .header .header-right {
        text-align: right;
        padding-right: 40px;
        padding-left: 0px;
        box-sizing: border-box;
    }
    .dloux .contact {
        width: 100%;
        position: fixed;
    }
    .html5 h3{
        padding-top: 88px;
        margin-bottom: .2em;
    }
    
    .git .img {
        margin-bottom: 6px;
    }
    
}

.dloux {
    height: 100%;
    width: 100%;
    /* background-image: url(../img/bg-1.jpg); */
    background-size: cover;
    position: relative;
    /* transform-style: preserve-3d; */
}

.header {
    display: flex;
}

.header-left {
    
    background: hsla(30, 0%, 50%, .2);
    height: 60px;
    color: rgba(255, 255, 255, 1);
    text-align: left;
    font-size: 18px;
    font-weight: bold;
    line-height: 60px;
    flex: 1 1 100%;
    padding-left: 40px;
    box-sizing: border-box;
}

.header1 {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1;
}
.header-right {
    background-color: hsla(30, 0%, 50%, .2);
    height: 60px;
    padding-left: 40px;
    font-size: 28px;
    flex: 1 1 100%;
    box-sizing: border-box;
    z-index: 1;
}

.header-right-img {
    height: 100%;
    line-height: 60px;
    color: white;
}

.container {
    display: flex;
    height: calc(-60px + 100%);
    /* flex-wrap: wrap; */
    height: 100%;
}

.container-left {
    background: url(../img/bg-2.jpg);
    /* display: flex;
    flex-direction: column; */
    position: relative;
    background-size: cover;
    flex: 1 1 100%;
    height: 100%;
}

.container-leftcenter {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
    width: 100%;
    text-align: center;
    color: #fff;
}
.container-leftcenter h3 {
    font-size: 38px;
    font-weight: bold;
    margin-bottom: 25px;
}
.container-leftcenter p:nth-of-type(1) {
    font-size: 32px;
    margin-bottom: 20px;
}

.container-leftcenter p:nth-of-type(2) {
    font-size: 16px;
    margin-bottom: 20px;
}
.button {
    padding: 10px 30px 10px 30px;
    margin: 10px;
    border: 0;
    /* box-sizing: border-box; */
    text-align: center;
    display: inline-block;
    position: relative;
    background: hsla(0, 0%, 0, 0.1);
}

.button::after {
    content: "";
    display: block;
    position: absolute;
    border-radius: 2px;
    width: 100%;
    height: 100%;
    top: 0; /* 卧槽！after伪类直接绝对定位t0 l0就和原来的元素重合了（不过原来的元素得上下、左右等内距，外距随意，我之前用的relative好辛苦 */
    left: 0;
    animation: buttonAnimation 1s linear 0s infinite alternate;
    background-color: hsla(0, 0%, 0%, .2);
}
@keyframes buttonAnimation {
    0% {
        box-shadow: none; /* none是把所有的box-shadow值给删了，和0不一样, 但在动画过程中效果一样
                        因为动画中把box-shadow看作一个整体，但如果元素本身带有box-shadow的值
        box-shadow: 0 0 30px #dfdfdf,
                    0 0 20px red;           0就只会删动画中新添加的值，不会影响元素本身的值。
        */
    }
    100% {
        box-shadow: 0 0 30px #dfdfdf;
    }

}

.container-right {
    background: #fff;
    flex: 1 1 100%;
    overflow-x: hidden;
    overflow-y: auto;
    padding-top: 60px;
}

.skill {
    box-sizing: border-box;
    width: 100%;
    letter-spacing: -10px; /* 去掉由于html中各元素之间空格导致的空白（这个空白会影响布局 */

}

.skill h2 {
    margin: 10px 15px 15px 15px;
    letter-spacing: normal;
}

.img {
    float: left;
    box-shadow: 0 0 5px rgba(0,0,0,0.2),0 0 10px rgba(0,0,0,0.1);
    margin-right: 1em ;
    height: 80px;
    width: 80px;
    border-radius: 4px;
    overflow: hidden;
    position: relative;
}

.html5 p {
    font-size: 14px;
    line-height: 1.5em;
}


.skill-list {
    display: inline-block;
    letter-spacing: normal; /* 还原 */
    vertical-align: top; /* 使每个skill-list对齐 */
    padding: 1.5em;
    width: 50%;
    box-sizing: border-box;
}

.skill-list h3{
    margin-bottom: .5em;
    color: #1f8dd6;

}

.img img{
    height: 80px;
    width: 80px;
}

.img::after {
    content: "";
    position: absolute;
    top: 0;
    left: -5px;
    background: rgba(247,98,98,.8);
    box-shadow: 1px 0 1px hsla(0, 0%, 0, .2);
    transform: skewX(-45deg);  /* 倾斜 */
    height: 40px;
    width: 25px;
}

.css3 p {
    background-image: linear-gradient(180deg,#9588dd,#9588dd 1.5em,#dd88c8 0%,#dd88c8 3.0em,#d3dd88 0%,#d3dd88 4.5em,#88b0dd 0%,#88b0dd);
    /* background-image: linear-gradient(180deg,#9588dd,#9588dd 1.4em,#dd88c8 0%,#dd88c8 2.8em,#d3dd88 0%,#d3dd88 4.2em,#88b0dd 0%,#88b0dd); */
    /* 我们写节点位置时，是可以随意写而不考虑大小关系的，但其实节点位置应该符合单调递增的关系。所以浏览器会自动进行纠正。其纠正逻辑为：
不正确的位置，会被纠正为与之前的明确指定的位置相同 ,也就是说，#dd88c8 0%相当于#dd88c8 1.4em ，所以就没有渐进效果了，0%可以写成0
           其实就是一种方便的写法，不然得写#dd88c8 1.5em， #d3dd88 3.0em ，比较麻烦 
                            1.5em是行高line-height，和行高一样就能有预想的效果了，1.4em的话有行字会出现两种颜色                     */
    line-height: 1.5em;
    /* color: transparent; */
    -webkit-text-fill-color: transparent;  /* CSS3增加的属性，指定文字的填充颜色，和color好像效果差不多，但优先级比color高
                                        会覆盖color，由于裁剪完背景后只留下和文字部分重合的颜色，
                                        而文字本身默认情况下是黑色，所以要把文字本身的颜色去除，让背景色显示出来 
                                        在这里直接用color: transparent; 效果是一样的*/
    -webkit-background-clip: text;  /* 裁剪背景，只留下和文字内容重合的部分 */
    background-clip: text;
    font-size: 14px;
}

.project {
    background: #2d3e50;
    color: white;
    padding: 32px 32px 48px 32px;
}

/* .p-list {
    list-style-position: inside;
}
.project li div:first-child{
    display: inline-block;
    vertical-align: top;
} */
/* 原本想让圆点在里面方便调整下面的那条border长度的~ 但改起来需要修正很多地方，还是用伪元素吧！ */

.p-list>li {
    padding: 24px 0;
}

.p-head>span:nth-of-type(1) {
    font-size: 16px;
}

.p-head>span:nth-of-type(2) {
    font-size: 12px;
}
.p-head>p {
    font-size: 14px;
    margin: 10px 0;
    color: hsla(0,0%,100%,.6);
}

.p-list {
    padding: 1.5em;
}

.p-content {
    padding: 0.2em 1em;

}

.p-content li>div {
    margin-top: .5em;
}

.p-intro>p {
    margin-top: .7em;
}
.skill-tags {
    margin-bottom: calc(.2em + 10px);

}
.skill-tag {
    display: inline-block;
    background-color: hsla(0,0%,100%,.6);
    margin-right: -2px;
    padding: 0 .3em;
    box-sizing: border-box;
    position: relative;
    color: black;
    margin-top: 4px;
}

.skill-tag::before {
    content: "";
    border: 1px solid hsla(0,0%,100%,.6);
    position: absolute;
    top: -2px;
    bottom: -2px;
    left: -2px;
    right: -2px;
}
.p-intro>p:nth-of-type(1) {
    color: hsla(0,0%,100%,.6);
}

.list {
    position: relative;
}
.list::after {
    position: absolute;
    top: 0;
    left: -1.5em;
    width: calc(3.5em + 100%);
    content: "";
    border-bottom: 1px solid #192b3e;
}
.list::before {
    position: absolute;
    top: 1px;
    left: -1.5em;
    width: calc(3.5em + 100%);
    content: "";
    border-bottom: 1px solid #425569;
}

.list:first-child::after {
    content: "";
    border: none;
}

.list:first-child::before {
    content: "";
    border: none;
}
.contact-content {
    width: 100%;
    box-sizing: border-box;
    padding: 2em;
    color: white;
    position: relative;
    top: 30%;
}
.contact-content h2 {
    text-align: center;
    margin: 1em 0;
    font-size: 27px;
}
.contact-item {
    text-align: right;
    width: 100%;
}

.contact {
    width: 50%;
    height: 100%;
    background-color: #205066;
    position: absolute;
    top: 0;
    left: 0;
    /* transform: rotateY(0deg) perspective(100px); */
    /* -webkit-transform: rotateY(0deg) perspective(100px); */
    /* -webkit-transform: rotateY(0deg); */
    transform:  perspective(600px) rotateY(-90deg);
    transform-origin: right;
    opacity: 0;
    /* transition: all .5s ease-out;
    -webkit-transition: all .5s ease-out; */

}

/* .contact:hover {
    transform:  perspective(160px) rotateY(0deg)  ;
    transition: transform 2.31s ease-out;
} */

.contact-active{
    transform:  perspective(0px) rotateY(0deg);
    opacity: 1;

    /* transition: transform .381s ease-out; */
    /* -webkit-transition: transform .31s ease-out; */
}

.contact-item span {
    float: left;
}

.contact-content p {
    box-sizing: border-box;
    font-size: 18px;
    margin: 1em 0;
    line-height: 2.5em;   /*当设置了border-box时，想调整下边框的位置，可以用line-height！因为padding在这时不管用了  */
    border-bottom: 1px solid hsla(0,0%,100%,.1);
}

.contact-content p:nth-of-type(1) {
    padding: 0 1em;

}
.contact-content p:nth-of-type(2) {
    padding: 0 3em;

}
.contact-content p:nth-of-type(3) {
    padding: 0 5em;

}
.contact-content p:nth-of-type(4) {
    padding: 0 7em;

}

.header-left {
    z-index: 1;
}

.fa-compass {
    cursor: pointer;
}

.return {
    position: absolute;
    right: 0;
    bottom: 0;
    margin: 1em 2em;
    color: white;
    text-decoration-line: underline;
    cursor: pointer;
    opacity: 0;
    transition: opacity .381s linear;
}

.return-active {
    opacity: 1;
}

.footer {
    position: fixed;
    bottom: 0;
    left: 0;
    padding: 1em 2em;
    background: hsla(0, 0%, 0%, .2);
    width: 100%;
    box-sizing: border-box;
    z-index: 1;
}

.footer ul {
    display: flex;
    list-style-type: none;
}

.footer li {
    padding-left: .5em;
    font-size: 14px;
    /* text-decoration-line: underline; */
}

.footer a {
    color: white;
}

.button {
    cursor: pointer;
}

/* .html5 h3{
    padding-top: 88px;
    margin-bottom: .2em;
}

.git .img {
    margin-bottom: 6px;
}  媒体查询需要改变的地方，否则git的文字会出现在图片右边，因为太短了没有，  达到换行字数*/
