


.page-ctn{
    /* padding-top: calc(96rem / 16); */
    padding-top: calc(65rem / 16);
    overflow: hidden;
}

.header-ctn{
    position: relative;
    height: 138px;
    /* margin-bottom: 90px; */
    margin-bottom: calc(65rem / 16);
    z-index: 400;
}

.scene-header{
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    text-align: center;
    opacity: 0;
    visibility: hidden;
    transition: .2s;
}

.scene-header.active{
    opacity: 1;
    visibility: visible;    
    transition: .4s;
}

.scene-header .title-en{
    font-size: 48px;
    color: #cbcdce;
    font-weight: bold;
    line-height: 60px;
    margin-bottom: 6px;
}

.scene-header .title-cn{
    color: #80634b;
    font-weight: 300;
    line-height: 36px;
    font-size: 30px;
    letter-spacing: .12em;
}

.scene-ctn{
    height: 710px;
    position: relative;
}

.scene-pagination{
    position: absolute;
    top: 0;
    right: 20px;
    width: 24px;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    z-index: 600;
}

.pagination-dot{
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    cursor: pointer;
    position: relative;
}

.pagination-dot::after{
    content: "";
    width: 8px;
    height: 8px;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    margin: auto;
    border-radius: 50%;
    border: 1px solid #ffffff;
    background: white;
    box-sizing: border-box;
}

.pagination-dot.active::after{
    background: transparent;
}

.scene{
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 210;

    display: none;
}

.scene.active{
    display: block;

    opacity: 1;
    animation: fadeIn .3s linear forwards;
    visibility: visible;
    z-index: 210;
}

.scene.entering{
    z-index: 215;
}

.scene.leaving{
    z-index: 205;
}

.scene.leaving-immediate{
    z-index: 205;
}

.back-board{
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background: #cbcdce;
    z-index: 210;
}

.element, .global-ctn{
    position: absolute;
    z-index: 240;
}

.element{
    transition: 0s;
}

.active .element{
    transition: 1s;
}

.element img,
.element svg{
    display: block;
    width: 100%;
    height: auto;
}

.global-ctn{
    width: 820px;
    height: 820px;
    position: absolute;
    top: -55px;
    left: 0;
    right: 0;
    margin: auto;
}

.btn-next-ctn{
    margin: 80px auto 56px;
    position: relative;
    z-index: 850;
    cursor: pointer;
}

/* 2020-5-13 start */
@keyframes btnNextSceneShakeNew {
    0% {
        transform: translateY(0);
    }
    25% {
        transform: translateY(-10px);
    }
    50% {
        transform: translateY(0);
    }
    75% {
        transform: translateY(-10px);
    }
    100% {
        transform: translateY(0);
    }
}
/* 2020-5-13 end */

@keyframes btnNextSceneShake {
    0%{
        transform: none;
    }
    15%{
        transform: translateY(12px);
    }
    30%{
        transform: translateY(4px);
    }
    45%{
        transform: translateY(12px);
    }
    60%{
        transform: none;
    }
    100%{
        transform: none;
    }
}

@keyframes btnNextSceneShakeReverse {
    0%{
        transform: rotateX(180deg);
    }
    15%{
        transform: rotateX(180deg) translateY(-12px);
    }
    30%{
        transform: rotateX(180deg);
    }
    45%{
        transform: rotateX(180deg) translateY(-12px);
    }
    60%{
        transform: rotateX(180deg);
    }
    100%{
        transform: rotateX(180deg);
    }
}

.btn-next-scene{
    width: 109px;
    height: 35px;
    background: url("../images/location/svg/btn_next.svg") center/contain no-repeat;
    transition: .8s;
    margin: auto;
    /* animation: btnNextSceneShake 2.4s linear infinite; */
    animation: btnNextSceneShakeNew 2.4s ease infinite;
}
.next-scene-hint{
    letter-spacing: .1em;
    font-weight: 300;
    color: #333;
    text-align: center;
    margin-bottom: 12px;
    font-size: 18px;
}

.btn-next-ctn:hover .btn-next-scene{
    transform: scale(1.1);
    animation: none;
}

.btn-next-scene.at-the-end{
    transform: rotateX(180deg);
    animation-name: btnNextSceneShakeReverse;
}
.btn-next-ctn:hover .btn-next-scene.at-the-end{
    transform: scale(1.1) rotateX(180deg);
}

.cloud-ctn{
    width: 100%;
    height: 0;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 505;
    overflow: visible;
    opacity: 0;
    visibility: hidden;
    transition: .3s;
}

.cloud-ctn.show {
    opacity: 1;
    visibility: visible;
}

@keyframes cloudMove {
    from{
        left: 100%;
    }
    to{
        left: -300px;
    }
}

.cloud1{
    position: absolute;
    left: 100%;
    top: 287px;
    width: 162px;
    animation: cloudMove 90s 8s linear infinite;
}

.cloud2{
    position: absolute;
    left: 100%;
    top: 431px;
    width: 276px;
    animation: cloudMove 54s linear infinite;
}

.map-ctn{
    position: absolute;
    width: 100%;
    height: 100%;
    right: 0;
    top: 0;
    border-radius: 50%;
    overflow: hidden;
    z-index: 230;
}

.map-ctn img{
    right: 0;
    top: 0;
    position: absolute;
    width: 820px;
    height: auto;
}

/*.entering .element{
    animation: fadeIn .3s forwards;
}*/

.leaving .element,
.leaving-immediate .element{
    animation: fadeOut .3s forwards;
}

.hide-overflow{
    overflow: hidden;
}


@keyframes mapCtnLeavingPart1 {
    0%{
        top: 0;
        right: 0;
        width: 820px;
        height: 820px;
    }
    100%{
        top: 232px;
        right: 2px;
        width: 468px;
        height: 468px;
    }
}

@keyframes mapCtnLeavingPart2 {
    0%{
        top: 232px;
        right: 2px;
        width: 468px;
        height: 468px;
    }
    100%{
        top: -189px;
        right: -189px;
        width: 1197px;
        height: 1197px;
    }
}

.leaving .map-ctn{
    top: 232px;
    right: 2px;
    width: 468px;
    height: 468px;
    animation: mapCtnLeavingPart1 0.8s cubic-bezier(.5, 0, .5, 1), mapCtnLeavingPart2 0.8s 0.8s cubic-bezier(.5, 0, .5, 1) forwards;
}

@keyframes mapCtnImgLeavingPart1 {
    0%{
        top: 0;
        right: 0;
        width: 820px;
        height: 820px;
    }
    100%{
        top: -232px;
        right: -2px;
        width: 820px;
        height: 820px;
    }
}

@keyframes mapCtnImgLeavingPart2 {
    0%{
        top: -232px;
        right: -2px;
        width: 820px;
        height: 820px;
    }
    100%{
        top: -599px;
        right: 0;
        width: 2095px;
        height: 2095px;
    }
}

.leaving .map-ctn img{
    animation: mapCtnImgLeavingPart1 0.8s cubic-bezier(.5, 0, .5, 1), mapCtnImgLeavingPart2 0.8s 0.8s cubic-bezier(.5, 0, .5, 1) forwards;
}

.hq-business-district{
    left: 432px;
    top: 383px;
    width: 177px;
    z-index: 320;
}

.airlines{
    left: 528px;
    top: 149px;
    width: 400px;
    z-index: 310;
}

.airport{
    width: 251px;
    left: 521px;
    top: 392px;
    z-index: 310;
}

.pl-pin{
    width: 127px;
    left: 410px;
    top: 314px;
    z-index: 350;
}

.routes{
    width: 407px;
    height: 628px;
    left: 118px;
    top: 116px;
}

.map-transition-ctn{
    width: 468px;
    height: 277px;
    left: 350px;
    top: 328px;
    opacity: 0;
    z-index: 245;
}

.leaving-immediate .map-transition-ctn{
    animation: none;
}

.map-transition-inner-ctn{

}

.map-transition-ctn2{
    width: 285px;
    left: 391px;
    top: 231px;
    opacity: 0;
    z-index: 315;
}

.entering .hq-business-district{
    opacity: 0;
    animation: zoomIn 1.2s .4s cubic-bezier(.7, 0, .3, 1) forwards, fadeIn .8s .4s linear forwards;
    transform-origin: 50% 42%;
}

.entering .airport{
    opacity: 0;
    transform-origin: 0% 55%;
    animation: zoomIn 1s .6s cubic-bezier(.7, 0, .3, 1) forwards, fadeIn .8s .6s linear forwards;
}

.entering .pl-pin{
    opacity: 0;
    animation: zoomIn 1.2s 1.4s cubic-bezier(.7, 0, .3, 1) forwards, fadeIn .8s 1.4s linear forwards;
    transform-origin: 50% 100%;
}

.entering .routes .st1{
    opacity: 0;
    animation: fadeIn .4s 2.4s forwards;
}

.entering .routes .st3,
.entering .routes .st0{
    animation: 1.2s 2.4s cubic-bezier(.7, 0, .3, 1) forwards;
}

.entering .routes text,
.entering .routes .st4{
    opacity: 0;
    animation: fadeIn 1s 3.4s forwards;
}

@keyframes circleInLg {
    0%{r: 0px;}
    100%{r: 10.2px;}
}

@keyframes circleInSm {
    0%{r: 0px;}
    100%{r: 4.3px;}
}

.entering .routes .st9{
    r: 0px;
    animation: circleInLg 0.6s 1.5s cubic-bezier(.7, 0, .3, 1) forwards;
}

.entering .routes .st10{
    r: 0px;
    animation: circleInSm 0.6s 1.6s cubic-bezier(.7, 0, .3, 1) forwards;
}

.entering .routes .st11{
    r: 0px;
    animation: circleInSm 0.8s 2.6s cubic-bezier(.7, 3, .7, .3) forwards;
}

.entering .airlines{
    opacity: 0;
    transform-origin: 0% 50%;
    animation: zoomIn 1.2s 4.2s cubic-bezier(.7, 0, .3, 1) forwards, fadeIn .8s 4.2s linear forwards;
}

.leaving .map-transition-ctn{
    animation: none;
    transition: opacity 0.8s linear,
    width 0.8s 0.8s cubic-bezier(.5, 0, .5, 1),
    height 0.8s 0.8s cubic-bezier(.5, 0, .5, 1),
    left 0.8s 0.8s cubic-bezier(.5, 0, .5, 1),
    top 0.8s 0.8s cubic-bezier(.5, 0, .5, 1);

    top: 56px;
    left: -188px;
    width: 1197px;
    height: 710px;

    opacity: 1;
    z-index: 340;
}

.leaving .map-transition-ctn2{
    animation: none;
    transition: opacity 1.5s linear,
    width 1.5s cubic-bezier(.7, 0, .3, 1),
    height 1.5s cubic-bezier(.7, 0, .3, 1),
    left 1.5s cubic-bezier(.7, 0, .3, 1),
    top 1.5s cubic-bezier(.7, 0, .3, 1);

    left: calc((1197px - 100vw + 16px) / 2 + 95px);
    top: 0;
    width: 1825px;
    opacity: 1;
}

.map2-inner-ctn, .map-transition-inner-ctn{
    position: absolute;
    width: 100%;
    left: 0;
    top: 0;
    bottom: 0;
    right: 0;
    margin: auto;
    padding-bottom: 100%;
    height: 0;
    /*background-color: rgba(0, 255, 0, .4);*/
    border-radius: 50%;
    overflow: hidden;
    /*border: 1px solid lime;*/
}

.map2-inner-ctn img, .map-transition-inner-ctn img{
    position: absolute;
    top: 0;
    bottom: 0;

    left: 0;
    margin: auto;
    width: 100%;
    height: auto;
}

.city-ctn{
    height: 100%;
    width: 1197px;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    margin: auto;
}

.map2-ctn{
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
}

@keyframes map2CtnLeaving {
    0%{
        transform: none;
    }
    100%{
        /*// 1904px - 1197px / 2 = 356
        // 100vw - 1197 / 2 =*/
        /*
        好麻烦啊
        解释一下
        (1904 - 100vw) / 2 求出第二屏中间区域到屏幕两边的距离
        加上这个值可以抵消宽度不等于1920的时候的边框唯位移
        +465是一个固定值
        */
        transform: translate(calc((1904px - 100vw) / 2 + 460px), 389px) scale(5.76);
    }
}

.leaving .map2-ctn{
    animation: map2CtnLeaving 1.5s cubic-bezier(.7, 0, .3, 1);
}

.big-arrow{
    width: 891px;
    left: 123px;
    top: 249px;
    z-index: 320;
}

.big-arrow-shadow{
    width: 935px;
    left: 109px;
    top: 320px;
    mix-blend-mode: multiply;
    z-index: 305;
}

.big-arrow-dots{
    width: 287px;
    left: 410px;
    top: 255px;
    z-index: 325;
}

.pl-pin2{
    left: 357px;
    top: 105px;
    width: 117px;
}

.line{
    width: 1px;
    background-color: rgba(255, 255, 255, .6);
    z-index: 340;
}

.line1{
    top: 220px;
    left: 415px;
    height: 63px;
    transform-origin: center bottom;
}

.line2{
    top: 177px;
    left: 607.5px;
    height: 80px;
    transform-origin: center bottom;
}

.line3{
    top: 68px;
    left: 692px;
    height: 186px;
    transform-origin: center bottom;
}

.line4{
    top: 201px;
    left: 881px;
    height: 80px;
    transform-origin: center bottom;
}

.line4-dot{
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background-color: #fff;
    left: 880px;
    top: 280px;
    z-index: 345;
}

.line5{
    top: 274px;
    left: 465px;
    height: 84px;
    transform-origin: center top;
}

.west {
    left: 98px;
    top: 421px;
    width: 50px;
    z-index: 355;
}

.east {
    left: 993px;
    top: 345px;
    width: 43px;
    z-index: 355;
}

.loc1 {
    left: 555px;
    top: 74px;
    width: 103px;
    z-index: 360;
}

.loc2 {
    left: 639px;
    top: -34px;
    width: 104px;
    z-index: 360;
}

.loc3 {
    left: 830px;
    top: 98px;
    width: 103px;
    z-index: 360;
}

.loc4 {
    left: 376px;
    top: 359px;
    width: 179px;
    z-index: 360;
}

.loc5 {
    left: 592px;
    top: 399px;
    width: 97px;
    z-index: 360;
}

.loc6 {
    left: 721px;
    top: 399px;
    width: 96px;
    z-index: 360;
}

.loc7 {
    left: 850px;
    top: 399px;
    width: 96px;
    z-index: 360;
}

.loc8 {
    left: 979px;
    top: 399px;
    width: 96px;
    z-index: 360;
}

.loc-dot{
    width: 18px;
    z-index: 355;
    top: 449px;
}

.loc-dot1 {
    left: 567px;
}

.loc-dot2 {
    left: 696px;
}

.loc-dot3 {
    left: 825px;
}

.loc-dot4 {
    left: 954px;
}

.loc1-text {
    left: 479px;
    top: 104px;
    width: 67px;
    z-index: 355;
}
.loc2-text {
    left: 755px;
    top: 11px;
    width: 46px;
    z-index: 355;
}
.loc3-text {
    left: 943px;
    top: 128px;
    width: 81px;
    z-index: 355;
}

.loc5-text {
    left: 586px;
    top: 505px;
    width: 108px;
    z-index: 355;
}

.loc6-text {
    left: 728px;
    top: 505px;
    width: 82px;
    z-index: 355;
}

.loc7-text {
    left: 851px;
    top: 505px;
    width: 94px;
    z-index: 355;
}

.loc8-text {
    left: 999px;
    top: 506px;
    width: 55px;
    z-index: 355;
}

.loc-cluster{
    left: 478px;
    top: 64px;
    width: 424px;
    z-index: 380;
}

@keyframes bigArrowDown {
    0%{
        transform: translateY(-40px);
        opacity: 0;
    }
    50%{
        opacity: 1;
    }
    100%{
        opacity: 1;
        transform: none;
    }
}

.entering .big-arrow{
    opacity: 0;
    animation: bigArrowDown .8s .2s cubic-bezier(.7, 0, .3, 1) forwards;
}

@keyframes bigArrowShadowAppear{
    0%{
        transform: translateY(8px) scale(0.9);
        opacity: 0;
    }
    80%{
        opacity: 1;
    }
    100%{
        transform: none;
        opacity: 1;
    }
}

.entering .big-arrow-shadow{
    opacity: 0;
    animation: bigArrowShadowAppear .8s .2s cubic-bezier(.7, 0, .3, 1) forwards;
}

.entering .west, .entering .east{
    opacity: 0;
    animation: fadeIn .4s .8s forwards;
}

@keyframes arrowDotsOuter {
    from{
        transform: translateX(-100%);
    }
    to{
        transform: none;
    }
}
@keyframes arrowDotsInner {
    from{
        transform: translateX(100%);
    }
    to{
        transform: none;
    }
}

.entering .big-arrow-dots{
    overflow: hidden;
    transform: translateX(-100%);
    animation: arrowDotsOuter .8s 1.4s forwards;
}

.entering .big-arrow-dots img{
    transform: translateX(100%);
    animation: arrowDotsInner .8s 1.4s forwards;
}

.entering .loc-cluster{
    opacity: 0;
    animation: fadeInUp 1s 5s forwards;
}

.entering .line4-dot{
    opacity: 0;
    animation: fadeIn .8s 1.4s forwards;
}

@keyframes lineStretch {
    0%{
        transform: scaleY(0);
    }
    100%{
        transform: scaleY(1);
    }
}

.entering .line{
    transform: scaleY(0);
}

.entering .line1{
    animation: lineStretch .6s 2.2s cubic-bezier(0, 0, .3, 1) forwards;
}

.entering .pl-pin2{
    opacity: 0;
    animation: fadeInUp .8s 2.4s cubic-bezier(0, 0, .3, 1) forwards;
}

.entering .line5{
    animation: lineStretch .6s 3.2s cubic-bezier(0, 0, .3, 1) forwards;
}

.entering .loc,
.entering .loc-text,
.entering .loc-dot{
    opacity: 0;
}

.entering .loc4{
    animation: fadeInDown .8s 3.4s cubic-bezier(0, 0, .3, 1) forwards;
}

.entering .loc5{
    animation: fadeInLeft .6s 4s cubic-bezier(0, 0, .3, 1) forwards;
}
.entering .loc6{
    animation: fadeInLeft .6s 4.2s cubic-bezier(0, 0, .3, 1) forwards;
}
.entering .loc7{
    animation: fadeInLeft .6s 4.4s cubic-bezier(0, 0, .3, 1) forwards;
}
.entering .loc8{
    animation: fadeInLeft .6s 4.6s cubic-bezier(0, 0, .3, 1) forwards;
}

.entering .loc-dot1{
    animation: fadeInLeft .4s 3.8s cubic-bezier(0, 0, .3, 1) forwards;
}
.entering .loc-dot2{
    animation: fadeInLeft .4s 4s cubic-bezier(0, 0, .3, 1) forwards;
}
.entering .loc-dot3{
    animation: fadeInLeft .4s 4.2s cubic-bezier(0, 0, .3, 1) forwards;
}
.entering .loc-dot4{
    animation: fadeInLeft .4s 4.4s cubic-bezier(0, 0, .3, 1) forwards;
}

.entering .loc5-text{
    animation: fadeInUp .6s 4.2s cubic-bezier(0, 0, .3, 1) forwards;
}
.entering .loc6-text{
    animation: fadeInUp .6s 4.4s cubic-bezier(0, 0, .3, 1) forwards;
}
.entering .loc7-text{
    animation: fadeInUp .6s 4.6s cubic-bezier(0, 0, .3, 1) forwards;
}
.entering .loc8-text{
    animation: fadeInUp .6s 4.8s cubic-bezier(0, 0, .3, 1) forwards;
}

.entering .line2{
    animation: lineStretch .6s 5.8s cubic-bezier(0, 0, .3, 1) forwards;
}

.entering .loc1{
    animation: fadeInUp .8s 6s cubic-bezier(0, 0, .3, 1) forwards;
}

.entering .loc1-text{
    animation: fadeInLeft .6s 6.6s cubic-bezier(0, 0, .3, 1) forwards;
}

.entering .line3{
    animation: lineStretch .6s 7.4s cubic-bezier(0, 0, .3, 1) forwards;
}

.entering .loc2{
    animation: fadeInUp .8s 7.8s cubic-bezier(0, 0, .3, 1) forwards;
}

.entering .loc2-text{
    animation: fadeInRight .8s 8.4s cubic-bezier(0, 0, .3, 1) forwards;
}

.entering .line4{
    animation: lineStretch .6s 9.2s cubic-bezier(0, 0, .3, 1) forwards;
}

.entering .loc3{
    animation: fadeInUp .8s 9.4s cubic-bezier(0, 0, .3, 1) forwards;
}

.entering .loc3-text{
    animation: fadeInRight .8s 10s cubic-bezier(0, 0, .3, 1) forwards;
}

.scene3.active, .scene4.active{
    display: flex;
    /* background-color: #cbcdce; */
    background-color: #333;
    align-items: stretch;
}

.scene .left{
    /* width: 358px; */
    width: 414px;
    flex: 0 0 auto;
    background-color: #333333;
    position: relative;
}

.scene .mid{
    /* width: 146px; */
    width: 90px;
    height: 100%;
    flex: 0 0 auto;
    /* padding-left: 3px;
    padding-right: 3px; */
    /* background-color: #ffffff; */
    background-color: #333333;
}

.scene .right{
    flex: 1 0 auto;
    position: relative;
    overflow: hidden;
}

.map-scene {
    opacity: 0;
    visibility: hidden;
    transition: .3s;
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
}

.map-scene.active {
    opacity: 1;
    visibility: visible;
}

.mid{
    /* display: flex; */
    flex-direction: column;
    margin-bottom: -3px;
}
.map-tab{
    flex: 1 0 auto;
    /* margin-bottom: 3px; */
    height: 90px;
    border: 2px solid #ffffff;
    border-bottom: 0;
}

.map-tab:last-child {
    border-bottom: 2px solid #ffffff;
}

.map-tab{
    background-color: #b1b2b4;
    position: relative;
    transition: .2s;
}

.map-tab.active{
    background-color: #333333;
}

.map-tab img{
    transition: .4s cubic-bezier(0, .7, .3, 1);
    width: auto;
    height: auto;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    margin: auto;
    /* max-width: 52px; */
    max-width: 25px;
    max-height: 56px;
}

.map-tab img.light{
    opacity: 0;
    visibility: hidden;
}

.map-tab.active{

}

.map-tab.active img{
    opacity: 0;
    visibility: hidden;
    z-index: 370;
    transform: scale(1.2);
}

.map-tab.active img.light{
    opacity: 1;
    visibility: visible;
    z-index: 390;
}

.map3-ctn{
    position: absolute;
    width: 1825px;
    height: 100%;
    top: 0;
    left: 0;
    overflow: hidden;
    z-index: 285;
}

.map4-ctn{
    position: absolute;
    width: 1280px;
    /* width: 100%; */
    height: 100%;
    top: 0;
    left: 0;
    overflow: hidden;
    z-index: 285;
}

.map3-ctn img,
.map4-ctn img{
    display: block;
    height: 100%;
    width: auto;
    /* height: auto;
    width: 100%; */
    position: absolute;
    top: 0;
    left: 0;
}

.drag-layer{
    z-index: 600;
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
}

.drag-layer[data-mousedown="1"]{
    cursor: move;
}

@supports (cursor: grab) {
    .drag-layer{
        cursor: grab;
    }

    .drag-layer[data-mousedown="1"]{
        cursor: grabbing;
    }
}


.map-scenes{
    z-index: 300;
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
}

.map-scene{
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 305;
}

.pl-pin3{
    left: 567px;
    top: 190px;
    width: 139px;
    z-index: 370;
}

.pl-area{
    left: 581px;
    top: 326px;
    width: 117px;
    z-index: 299;
}

.airport-pin{
    width: 182px;
    left: 794px;
    top: 124px;
}

.airport-intro{
    left: 808px;
    top: 327px;
    width: 167px;
}

.country-data{
    left: 1003px;
    top: 153px;
}

.loc-data-list{
    width: 500px;
}

.loc-data{
    height: 20px;
    display: flex;
    align-items: stretch;
    margin-bottom: 15px;
}

.loc-data .flag{
    height: 100%;
    width: auto;
    flex: 0 0 auto;
}

.loc-data .inner-value{
    padding: 0 12px;
    height: 100%;
    background-color: #cc7c7c;
    border-radius: 10px;
    color: white;
    margin-left: 7px;

    display: flex;
    align-items: center;
    justify-content: flex-end;
    overflow: hidden;
}

.loc-data .num{
    font-size: 18px;
    font-weight: 500;
    letter-spacing: .075px;
    flex: 0 0 auto;
}

.loc-data .unit{
    font-size: 12px;
    flex: 0 0 auto;
    transform: scale(.75);
    transform-origin: right center;
    margin-left: -6px;
}

.road_text1{
    left: 474px;
    top: 77px;
    width: 690px;
}

.road_text2{
    left: 92px;
    top: 77px;
    width: 1071px;
}

.left-intro {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    opacity: 0;
    visibility: hidden;
    transition: .3s;
    color: white;
    padding: 34px 25px 34px 70px;
}

.left-intro.active {
    opacity: 1;
    visibility: visible;
}

.left-intro .header{
    color: #af8065;
}

.left-intro .title-en{
    font-size: 14.73px;
    font-weight: bold;
    line-height: 17.89px;
    letter-spacing: 1px;
}

.left-intro .title-cn{
    font-weight: 500;
    font-size: 18.94px;
    line-height: 1.4em;
    letter-spacing: 2px;
    margin-top: 8px;
    margin-bottom: 12px;
}

.left-intro .content{
    border-top: 1px dashed #656565;
    padding: 12px 0;
}

@supports (background: repeating-linear-gradient(to right, #fff, #000)) {
    .left-intro .content{
        border-top: none;
        background: repeating-linear-gradient(to right, #656565 0, #656565 3px, transparent 3px, transparent 11px) center top/100% 1px no-repeat;
    }
}

.left-intro p{
    display: flex;
    align-items: center;
    font-size: 16.1px;
    font-weight: 300;
    letter-spacing: .1em;
    line-height: 37.25px;
}

.left-intro p strong{
    color: #af8065;
    /* font-weight: 800; */
    font-weight: 700;
    font-size: 40.25px;
    margin-top: -3px;
    margin-left: 3px;
    margin-right: 3px;
    letter-spacing: .075em;
    line-height: 1em;
}

.prov-name{
    font-size: 14px;
    color: white;
    letter-spacing: 2px;
}

.railway-pin{
    width: 182px;
    left: 794px;
    top: 124px;
}

.railway-intro{
    left: 819px;
    top: 327px;
    width: 120px;
}

.province-data{
    left: 1011px;
    top: 90px;
}

.province-data .loc-data{
    margin-bottom: 10px;
}

.left-intro .content h2{
    color: #af8065;
    line-height: 1.5em;
    font-size: 18.94px;
    font-weight: 500;
    margin-top: .5em;
    margin-bottom: .5em;
}

.scene3 .intro3 .content p{
    letter-spacing: .05em;
}

.province-data .inner-value{
    padding-right: 6px;
    padding-left: 6px;
}

.traffic-roads{
    left: 126px;
    top: -1px;
    width: 922px;
    z-index: 307;
}

.shared-elements .element {
    opacity: 1;
    visibility: visible;
    transition: .3s;
}

.shared-elements .element.hide {
    opacity: 0;
    visibility: hidden;
}

.traffic-road-text{
    left: 493px;
    top: 255px;
    width: 446px;
    z-index: 309;
}

.district-hq{
    left: 833px;
    top: 342px;
    width: 89px;
}

.district-cn{
    left: 1104px;
    top: 240px;
    width: 87px;
}

.province-js{
    left: 486px;
    top: 22px;
    width: 69px;
}

.province-jd{
    left: 829px;
    top: 11px;
    width: 72px;
}

.province-sj{
    left: 591px;
    top: 641px;
    width: 103px;
}

.province-mh{
    left: 841px;
    top: 623px;
    width: 92px;
}

.metro-lines {
    width: 1440px;
    height: 721px;
    top: -7px;
    left: 401px;
}

.metro-loc{
    width: 190px;
}

.metro-loc1{
    left: 791px;
    top: 168px;
}

.metro-loc2{
    left: 1195px;
    top: 48px;
}

.metro-loc3{
    left: 1388px;
    top: -25px;
}

.metro-loc4{
    left: 1406px;
    top: 291px;
}

.metro-loc5{
    left: 1581px;
    top: 201px;
}

.necc{
    width: 174px;
    left: 670px;
    top: 430px;
}

.metro-line-text{
    width: 680px;
    left: 478px;
    top: 272px;
    z-index: 335;
}

.north-indicator{
    width: 18px;
    right: 55px;
    bottom: 137px;
    z-index: 625;
}

.btn-zoom{
    width: 42px;
    right: 41px;
    z-index: 625;
    cursor: pointer;
}

.btn-plus{
    bottom: 80px;
}

.btn-minus{
    bottom: 30px;
}

.btn-zoom.disabled{
    opacity: .8;
    pointer-events: none;
}

@supports (filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, .3))) {
    .btn-zoom{
        filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, .3));
    }
}

.active .element.btn-zoom{
    transition: .3s;
}

.active .element.btn-zoom:hover{
    transform: scale(1.1);
}

.active .element.btn-zoom:active{
    transform: none;
    transition: 0s;
}

.scene4 .left{
    width: 500px;
    /* width: 556px; */
}

.scene4 .mid{
    /* width: 144px; */
    width: 90px;
}

.scene4 .left-intro{
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding-right: 50px;
}

.scene4 .left-intro .header{
    flex: 0 0 104px;
}

.scene4 .left-intro .point-list{
    height: calc(100% - 104px);
    flex: 0 0 auto;
    overflow: auto;

    /* 2020-5-13 */
    /* direction: rtl; */
}

.left-intro .point:first-child{
    padding-top: 2px;
}

.left-intro .point{
    /* font-size: 18.4px; */
    font-size: 16px;
    /* padding-top: 12px;
    padding-bottom: 12px; */
    padding-top: 6px;
    padding-bottom: 6px;
    display: block;
    width: 100%;
    letter-spacing: .075em;
    line-height: 1.5em;

    /* 2020-5-13 */
    /* text-align: left;
    padding-left: 2rem; */
}

.left-intro .point span {
    font-family: "Helvetica Now Display", Arial, sans-serif;
    letter-spacing: .025em;
    display: block;
    /* font-size: 14.95px; */
    font-size: 13px;
    line-height: 1.1em;
}

.left-intro .point-list::-webkit-scrollbar{
    width: 3px;
    background-color: #615046;
}

.left-intro .point-list::-webkit-scrollbar-track{

}

.left-intro .point-list::-webkit-scrollbar-thumb{
    background-color: #af8065;
    border-radius: 0;
}

.point.element{
    transform: translateY(-50%);
    height: 40px;
}

.point .point-pin{
    width: 24px;
    height: auto;
    max-height: 26px;
    object-fit: contain;
    transform: translateX(-50%) translateY(-100%);
    top: 50%;
    position: absolute;
}

.point .point-name{
    position: absolute;
    color: #fff;
    transform: translateX(20px);
    text-shadow: 1px 1px 3px rgba(0, 0, 0, .5);
}

.point .point-name.align-right{
    text-align: right;
    transform: translateX(-100%) translateX(-20px);
}

@supports (transform: translateX(calc(-100% - 20px))) {
    .point .point-name.align-right{
        text-align: right;
        transform: translateX(calc(-100% - 20px));
    }
}

.point .point-name .cn{
    font-size: 12.82px;
    line-height: 1.1em;
    white-space: pre;
    letter-spacing: 1px;
}
.point .point-name .en{
    font-size: 9px;
    line-height: 1.1em;
    white-space: pre;
}

@keyframes pinJump {
    0%{
        top: 313px;
    }
    100%{
        top: 300px;
    }
}

@keyframes pinBounce {
    0%{
        transform: scale(1.03, 0.97);
    }
    50%{
        transform: scale(0.98, 1.02);
    }
    100%{
        transform: scale(1.02, 0.98);
    }
}

@keyframes pinShadowJump {
    0%{
        transform: scale(0.67, 0.33) skewX(21deg);
    }
    100%{
        transform: scale(0.67, 0.33) skewX(21deg) translateY(-16px);
    }
}

.scene4 .shared-elements{
    mix-blend-mode: multiply;
}

.pl-pos-pin{
    width: 32px;
    left: 580px;
    top: 313px;
    z-index: 399;
    isolation: auto;
    animation: pinJump .5s cubic-bezier(0, .4, .6, 1) alternate infinite;
    transform-origin: 65% bottom;
}

.pl-pos-pin img{
    animation: pinBounce .5s cubic-bezier(0, .4, .6, 1) alternate infinite;
}

.pl-pos-pin-shadow{
    transform-origin: center bottom;
    transform: scaleY(0.5) skewX(21deg);
    opacity: .8;
    animation-name: pinShadowJump;
}

@supports (filter: blur(1px)) {
    .pl-pos-pin-shadow{
        opacity: 1;
        filter: blur(8px);
    }
}

.right-inner{
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    transform-origin: left top;
}

.scene.active .map-scene .element{
    opacity: 0;
}

.shared-elements{
    visibility: hidden;
    opacity: 0;
    transition: .6s 0s;
}

.scene.active:not(.entering) .shared-elements{
    opacity: 1;
    visibility: visible;
    transition: .8s .3s;
}

.scene.active:not(.entering) .map-scene.active .airport-pin,
.scene.active:not(.entering) .map-scene.entered .airport-pin{
    animation: fadeInUp .6s .1s cubic-bezier(.6, 0, .4, 1) forwards;
}

.scene.active:not(.entering) .map-scene.active .airport-intro,
.scene.active:not(.entering) .map-scene.entered .airport-intro{
    animation: zoomIn .6s 0s cubic-bezier(.6, 0, .4, 1) forwards,
                fadeIn .6s 0s forwards;
}

.scene.active:not(.entering) .map-scene.active .country-data,
.scene.active:not(.entering) .map-scene.entered .country-data{
    animation: fadeInUp .6s .1s cubic-bezier(.6, 0, .4, 1) forwards;
}
@keyframes innerValueGrow {
    from{
        width: 0%;
    }
    to{
        width: 100%;
    }
}
.scene.active:not(.entering) .map-scene.active .country-data .inner-value,
.scene.active:not(.entering) .map-scene.entered .country-data .inner-value{
    width: 0%;
    animation: innerValueGrow 1s .2s cubic-bezier(0, .7, .3, 1) forwards;
}

.scene.active:not(.entering) .map-scene.active .railway-pin,
.scene.active:not(.entering) .map-scene.entered .railway-pin{
    animation: fadeInUp .6s .2s cubic-bezier(.6, 0, .4, 1) forwards;
}

.scene.active:not(.entering) .map-scene.active .railway-intro,
.scene.active:not(.entering) .map-scene.entered .railway-intro{
    animation: zoomIn .6s .1s cubic-bezier(.6, 0, .4, 1) forwards,
    fadeIn .6s .1s forwards;
}

.scene.active:not(.entering) .map-scene.active .province-data,
.scene.active:not(.entering) .map-scene.entered .province-data{
    animation: fadeInUp .6s .2s cubic-bezier(.6, 0, .4, 1) forwards;
}

.scene.active:not(.entering) .map-scene.active .province-data .inner-value,
.scene.active:not(.entering) .map-scene.entered .province-data .inner-value{
    width: 0%;
    animation: innerValueGrow 1s .4s cubic-bezier(0, .7, .3, 1) forwards;
}

.scene.active:not(.entering) .map-scene.traffic.active .traffic-roads,
.scene.active:not(.entering) .map-scene.traffic.entered .traffic-roads{
    animation: fadeIn .6s 1s forwards;
}
.scene.active:not(.entering) .map-scene.traffic.active .traffic-road-text,
.scene.active:not(.entering) .map-scene.traffic.entered .traffic-road-text{
    animation: fadeIn .6s 1s forwards;
}
.scene.active:not(.entering) .map-scene.traffic.active .area-text,
.scene.active:not(.entering) .map-scene.traffic.entered .area-text{
    animation: fadeIn .6s 1.6s forwards;
}

.scene.active:not(.entering) .map-scene.active .metro-lines,
.scene.active:not(.entering) .map-scene.entered .metro-lines{
    animation: fadeIn .6s 0s forwards;
}

.scene.active:not(.entering) .map-scene.active .metro-lines .st3,
.scene.active:not(.entering) .map-scene.entered .metro-lines .st3,
.scene.active:not(.entering) .map-scene.active .metro-lines .st13,
.scene.active:not(.entering) .map-scene.entered .metro-lines .st13{
    opacity: 0;
    animation: fadeIn 1.2s .2s forwards;
}

.scene.active:not(.entering) .map-scene.active .metro-lines .st4,
.scene.active:not(.entering) .map-scene.entered .metro-lines .st4,
.scene.active:not(.entering) .map-scene.active .metro-lines .st14,
.scene.active:not(.entering) .map-scene.entered .metro-lines .st14{
    opacity: 0;
    animation: fadeIn 1.2s .2s forwards;
}

.scene.active:not(.entering) .map-scene.active .metro-lines .st5,
.scene.active:not(.entering) .map-scene.entered .metro-lines .st5,
.scene.active:not(.entering) .map-scene.active .metro-lines .st8,
.scene.active:not(.entering) .map-scene.entered .metro-lines .st8{
    animation: fadeIn 1.2s .2s forwards;
    opacity: 0;
}

.scene.active:not(.entering) .map-scene.active .metro-line-text,
.scene.active:not(.entering) .map-scene.entered .metro-line-text{
    /*让一让，挡住我审查元素了*/
    pointer-events: none;
    animation: fadeIn .8s .2s forwards;
}

.metro-lines .st6-group{
    transform-origin: 477px 392px;
}

@keyframes spinIn {
    from{
        opacity: 0;
        transform: rotate(90deg);
    }
    to{
        opacity: 1;
        transform: none;
    }
}

.scene.active:not(.entering) .map-scene.active .metro-lines .st6-group,
.scene.active:not(.entering) .map-scene.entered .metro-lines .st6-group{
    animation: spinIn 1.2s 1s forwards;
    opacity: 0;
}

.metro-lines .st8-group{
    transform-origin: 240px 426px;
}

.scene.active:not(.entering) .map-scene.active .metro-lines .st8-group,
.scene.active:not(.entering) .map-scene.entered .metro-lines .st8-group{
    opacity: 0;
    animation: zoomIn 1s .8s forwards, fadeIn .8s .8s forwards;
}

.scene.active:not(.entering) .map-scene.active .metro-lines .st10,
.scene.active:not(.entering) .map-scene.entered .metro-lines .st10{
    opacity: 0;
    animation: fadeIn .8s 1.6s forwards;
}

.scene.active:not(.entering) .map-scene.active .metro-lines .st11,
.scene.active:not(.entering) .map-scene.entered .metro-lines .st11{
    opacity: 0;
    animation: fadeIn .8s 1.4s forwards;
}

.scene.active:not(.entering) .map-scene.active .metro-lines .st12,
.scene.active:not(.entering) .map-scene.entered .metro-lines .st12{
    opacity: 0;
    animation: fadeIn .8s 1.6s forwards;
}

@keyframes drawStrokeMetro1 {
    from{stroke-dasharray: 0, 1442px;}
    to{stroke-dasharray: 1442px, 0;}
}

@keyframes drawStrokeMetro2 {
    from{stroke-dasharray: 0, 1133px;}
    to{stroke-dasharray: 1133px, 0;}
}

@keyframes drawStrokeMetro3 {
    from{stroke-dasharray: 0, 594px, 0}
    to{stroke-dasharray: 0, 0, 594px;}
}

/*sb ie*/
@supports(filter: blur(1px)){
    .scene.active:not(.entering) .map-scene.active .metro-lines .st3,
    .scene.active:not(.entering) .map-scene.entered .metro-lines .st3{
        stroke-dasharray: 0, 100%;
        opacity: 1;
        animation: drawStrokeMetro1 1.4s .2s cubic-bezier(.6, 0, .4, 1) forwards;
    }

    .scene.active:not(.entering) .map-scene.active .metro-lines .st4,
    .scene.active:not(.entering) .map-scene.entered .metro-lines .st4{
        stroke-dasharray: 0, 100%;
        opacity: 1;
        animation: drawStrokeMetro2 1.4s .2s cubic-bezier(.6, 0, .4, 1) forwards;
    }

    .scene.active:not(.entering) .map-scene.active .metro-lines .st5,
    .scene.active:not(.entering) .map-scene.entered .metro-lines .st5{
        stroke-dasharray: 0, 100%;
        opacity: 1;
        animation: drawStrokeMetro3 1.4s .2s cubic-bezier(.6, 0, .4, 1) forwards;
    }
}

.scene.active:not(.entering) .map-scene.active .metro-loc1,
.scene.active:not(.entering) .map-scene.entered .metro-loc1{
    opacity: 0;
    animation: fadeInUp 1.2s 1.2s cubic-bezier(.7, 0, .3, 1) forwards;
}

.scene.active:not(.entering) .map-scene.active .necc,
.scene.active:not(.entering) .map-scene.entered .necc{
    opacity: 0;
    animation: zoomIn 1.2s 1.4s cubic-bezier(.7, 0, .3, 1) forwards, fadeIn .8s 1.4s forwards;
}

.scene.active:not(.entering) .map-scene.active .metro-loc2,
.scene.active:not(.entering) .map-scene.entered .metro-loc2{
    opacity: 0;
    animation: fadeInUp 1.2s 1.8s cubic-bezier(.7, 0, .3, 1) forwards;
}

.scene.active:not(.entering) .map-scene.active .metro-loc3,
.scene.active:not(.entering) .map-scene.entered .metro-loc3{
    opacity: 0;
    animation: fadeInUp 1.2s 2s cubic-bezier(.7, 0, .3, 1) forwards;
}

.scene.active:not(.entering) .map-scene.active .metro-loc4,
.scene.active:not(.entering) .map-scene.entered .metro-loc4{
    opacity: 0;
    animation: fadeInDown 1.2s 2.2s cubic-bezier(.7, 0, .3, 1) forwards;
}

.scene.active:not(.entering) .map-scene.active .metro-loc5,
.scene.active:not(.entering) .map-scene.entered .metro-loc5{
    opacity: 0;
    animation: fadeInDown 1.2s 2.4s cubic-bezier(.7, 0, .3, 1) forwards;
}

.scene.scene4.active .map-scene .element{
    opacity: 1;
}


