.hidden {
     display: none !important;
 }

 * {
     margin: 0;
     padding: 0;
     box-sizing: border-box;
 }

 img,
 a {
     border: none;
 }

 a {
     text-decoration: none;
 }

 html,
 body {
     width: 100%;
     height: 100%;
     overflow: hidden;
     background-color: #cdbb9a;
     font-family: sans-serif;
 }

 .intro-page {
     background-image: url('bg9.jpg');
     background-size: 100% 100%;
     background-position: center;
     background-repeat: no-repeat;
 }


 .intro-content {
     padding: 2.5rem;
 }

 .intro-content h1 {
     font-size: 4rem;
     margin-bottom: 1.875rem;
     color: #fff;
     float: left;
     font-weight: normal;
 }


 /*0911*/
 .preface-page,
 .epilogue-page {
     width: 100vw;
     height: 100vh;
     display: flex;
     flex-direction: column;
     justify-content: center;
     align-items: center;
     padding: 4rem;
     background: #cdbb9a;
     position: relative;
     flex-shrink: 0;
 }



 .preface-content,
 .epilogue-content {
     max-width: 80vw;
     text-align: center;
     color: #333;
 }

 .preface-content h2,
 .epilogue-content h2 {
     font-size: 3rem;
     margin-bottom: 2rem;
     color: #fff;
     font-weight: normal;
     text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
 }

 .preface-content p,
 .epilogue-content p {
     font-size: 1.5rem;
     line-height: 2;
     color: #fff;
     text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
     margin-bottom: 1.5rem;
 }

 .scroll-hint-text {
     position: absolute;
     bottom: 3rem;
     left: 50%;
     transform: translateX(-50%);
     color: #fff;
     font-size: 1.5rem;
     text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
     animation: scrollHintBounce 2s infinite;
     cursor: pointer;
 }

 @keyframes scrollHintBounce {

     0%,
     100% {
         transform: translateX(-50%) translateY(0);
     }

     50% {
         transform: translateX(-50%) translateY(-10px);
     }
 }

 /**/
 .city-expand-container {
     z-index: 999;
 }

 .blocks-container {
     position: relative;
     display: flex;
     width: max-content;
     height: 100%;

 }

 .blocks-container .bg-wrapper {

     position: absolute;
     top: 0;
     left: 0;
     display: flex;
     height: 100%;
     z-index: 0;
 }


 .blocks-container .content-inner {
     position: relative;
     z-index: 1;
     display: flex;
     width: 1648.2vw;
     height: 100%;

 }

 .blocks-container .bg-wrapper .bg-item {
     height: 100%;
     flex-shrink: 0;
     background-size: 100% 100%;
     background-position: center;
     background-repeat: no-repeat;
 }

 .bg-wrapper img {
     height: 100%;
     width: auto;
     display: block;
     flex-shrink: 0;
 }


 #loading-screen {
     position: fixed;
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
     background: #cdbb9a url(loading.jpg) no-repeat center center;
     display: flex;
     flex-direction: column;
     justify-content: center;
     align-items: center;
     z-index: 10000;
     background-size: 100% 100%;
 }

 #loading-logo {
     position: relative;
     width: 15rem;
     height: auto;
     margin-bottom: 2rem;
 }

 #loading-logo img {
     width: 100%;
     height: auto;
     display: block;
 }

 #loading-logo .logo-base {
     position: relative;
     z-index: 1;
 }

 #loading-logo .logo-overlay {
     position: absolute;
     top: 0;
     left: 0;
     right: 0;
     bottom: 0;
     width: 100%;
     height: 100%;
     z-index: 2;
     clip-path: inset(0 100% 0 0);
     transition: clip-path 0.3s ease;
 }

 #loading-percent {
     color: #555;
     font-size: 1.5rem;
     letter-spacing: 0.2rem;
     height: 2.2rem;
     visibility: visible;
     opacity: 1;
     transition: opacity 0.5s ease;

 }

 #loading-percent.hidden {
     display: none;
 }

 #loading-txt {
     display: none;
     height: 2.2rem;
     animation: fadeInTxt 1s ease forwards;
     cursor: pointer;

 }


 @keyframes fadeInTxt {
     from {
         opacity: 0;
         transform: translateY(10px);
     }

     to {
         opacity: 1;
         transform: translateY(0);
     }
 }

 #loading-bar-container {
     width: 12.5rem;
     height: 0.25rem;
     background: rgba(255, 255, 255, 0.2);
     border-radius: 0.125rem;
     overflow: hidden;
 }

 #loading-bar {
     width: 0%;
     height: 100%;
     background: #fff;
     transition: width 0.3s ease;
 }

 #loading-text {
     color: #fff;
     margin-top: 1.25rem;
     font-size: 0.875rem;
 }

 #enter-btn {
     margin-top: 1.875rem;
     padding: 0.75rem 2.5rem;
     background: #fff;
     color: #000;
     border: none;
     border-radius: 1.5625rem;
     font-size: 1rem;
     cursor: pointer;
     display: none;
 }

 #enter-btn:hover {
     background: #f0f0f0;
 }

 #splash-screen {
     position: fixed;
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
     background: #000;
     display: none;
     justify-content: center;
     align-items: center;
     z-index: 9999;
 }

 #splash-screen video {
     width: 100%;
     height: 100%;
     /* object-fit: cover; */
     object-fit: contain;
 }

 #skip-btn {
     position: absolute;
     top: 1.25rem;
     right: 1.25rem;
     padding: 5px 15px;
     background: rgba(0, 0, 0, 0.6);
     color: #fff;
     border: 1px solid #fff;
     border-radius: 0.25rem;
     cursor: pointer;
     font-size: 0.9rem;
     z-index: 10000;
 }

 #skip-btn:hover {
     background: rgba(0, 0, 0, 0.8);
 }

 .intro-sections {
     display: flex;
     gap: 1.25rem;
     justify-content: center;
     align-items: center;
     height: 100vh;
     width: 100%;
 }

 .intro-section {
     background: rgba(255, 255, 255, 0.1);
     border: 1px solid rgba(255, 255, 255, 0.3);
     border-radius: 0.5rem;
     font-size: 1.25rem;
     color: #fff;
     text-align: center;
     cursor: pointer;
     transition: all 0.3s ease;
     width: 18rem;
     height: 8rem;
     line-height: 8rem;
 }

 .intro-section:hover {
     background: rgba(255, 255, 255, 0.2);
     transform: translateY(-0.125rem);
 }

 .modal-overlay {
     display: none;
     position: fixed;
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
     background-color: rgba(0, 0, 0, 0.5);
     z-index: 10002;
     justify-content: center;
     align-items: center;
     overflow: hidden;

 }

 .modal-overlay.active {
     display: flex;
     animation: modalFadeIn 0.4s ease;
 }


 .modal-overlay.active .modal-content {
     animation: modalSlideIn 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
 }

 @keyframes modalFadeIn {
     from {
         opacity: 0;
     }

     to {
         opacity: 1;
     }
 }

 @keyframes modalSlideIn {
     from {
         transform: scale(0.8) translateY(30px);
         opacity: 0;
     }

     to {
         transform: scale(1) translateY(0);
         opacity: 1;
     }
 }

 .modal-content {
     position: relative;
     width: 75rem;
     height: 45.625rem;
     background-color: #fff;
     border-radius: 8px;
     background: url(dialog.png) no-repeat;
     background-size: 100% 100%;
     background-position-x: -64px;
 }


 .fullscreen .iframe-wrapper.article-mode {
     height: 100% !important;
     margin-top: 0 !important;
 }

 .fullscreen .modal-iframe {
     height: 100% !important;
 }

 .fullscreen .scroll-hint {
     display: none !important;
 }

 .fullscreen .modal-back {
     top: 15px !important;
     left: 15px !important;
 }

 .fullscreen .modal-close {
     top: 15px;
     right: 15px;

 }

 .modal-content.fullscreen {
     width: 100vw;
     height: 100vh;
     border-radius: 0;
     background: #d3bd8e !important;
     background-image: none !important;
     /* background-size: cover !important; */
 }


 /**1017*/

 .modal-content.cards {
     width: auto !important;
     height: auto !important;
     max-width: 1200px;
     max-height: 860px;
     background: none !important;
     background-color: transparent !important;
     background-image: none !important;
     border-radius: 0;
     padding: 0;
     overflow: visible;
 }

 .modal-content.cards .iframe-wrapper {
     width: auto !important;
     height: auto !important;
     margin: 0 !important;
     display: block;
 }



 .modal-content.cards .modal-iframe {
     display: block;
     width: 1200px !important;
     height: 860px !important;
     border: none;
     background: transparent;
 }


 .modal-content.cards .modal-back,
 .modal-content.cards .scroll-hint {
     display: none !important;
 }

 .modal-content.cards .modal-close {
     top: 10px;
     right: -54px;
     display: flex;
     align-items: center;
     justify-content: center;
     z-index: 10004;
 }

 /* .modal-content.cards .modal-close img {
     height: 40px;
     width: 40px;
 } */



 .postcards1 {
     position: absolute;
     right: 1rem;
     top: 18rem;
     z-index: 2;
 }

 .postcards2 {
     position: absolute;
     left: 60rem;
     bottom: 25.5rem;
     z-index: 2;
 }


 .postcards3 {
     position: absolute;
     right: 16rem;
     top: 14rem;
     z-index: 2;
 }


 .postcards4 {
     position: absolute;
     left: 10rem;
     bottom: 25rem;
     z-index: 2;
 }

 .postcards5 {
     position: absolute;
     left: 37rem;
     bottom: 23rem;
     z-index: 2;
 }

 .postcards6 {
     position: absolute;
     left: -11rem;
     bottom: 27rem;
     z-index: 2;
 }

 .postcards7 {
     position: absolute;
     right: 7rem;
     top: 24rem;
     z-index: 2;
 }

 .postcards8 {
     position: absolute;
     left: 43rem;
     top: 24rem;
     z-index: 2;
 }

 .postcards9 {
     position: absolute;
     left: -8rem;
     top: 18rem;
     z-index: 2;
 }



 .postcards10 {
     position: absolute;
     left: -3rem;
     top: 13rem;
     z-index: 2;
 }

 .postcards11 {
     position: absolute;
     left: 9rem;
     bottom: 8rem;
     z-index: 2;
 }

 .postcards12 {
     position: absolute;
     left: 17rem;
     top: 15rem;
     z-index: 2;
 }

 .postcards13 {
     position: absolute;
     left: 26rem;
     bottom: 33rem;
     z-index: 2;
 }


 .postcards14 {
     position: absolute;
     left: 47rem;
     bottom: 18rem;
     z-index: 2;
 }


 .postcards15 {
     position: absolute;
     right: 5rem;
     top: 21rem;
     z-index: 2;
 }


 .postcards16 {
     position: absolute;
     right: 61rem;
     bottom: 12rem;
     z-index: 2;
 }


 .postcards17 {
     position: absolute;
     left: 33rem;
     bottom: 33rem;
     z-index: 2;
 }


 .postcards18 {
     position: absolute;
     right: 9rem;
     bottom: 29rem;
     z-index: 2;
 }


 .postcards19 {
     position: absolute;
     left: 1rem;
     top: 21rem;
     z-index: 2;
 }



 .postcards20 {
     position: absolute;
     left: 36rem;
     bottom: 12rem;
     z-index: 2;
 }

 .postcards30 {
     position: absolute;
     left: 72rem;
     top: 24rem;
     z-index: 2;
 }

 .postcards21 {
     position: absolute;
     right: 53rem;
     top: 26rem;
     z-index: 2;
 }



 .postcards22 {
     position: absolute;
     left: 19rem;
     top: 16rem;
     z-index: 2;
 }

 .postcards23 {
     position: absolute;
     left: -53rem;
     top: 19rem;
     z-index: 2;
 }


 .postcards24 {
     position: absolute;
     right: 24rem;
     top: 12rem;
     z-index: 2;
 }


 .postcards25 {
     position: absolute;
     right: 43.5rem;
     top: 17rem;
     z-index: 2;
 }


 .postcards26 {
     position: absolute;
     left: 15rem;
     top: 22rem;
     z-index: 2;
 }


 .postcards27 {
     position: absolute;
     left: 40rem;
     top: 17rem;
     z-index: 2;
 }


 .postcards28 {
     position: absolute;
     left: 2rem;
     bottom: 28rem;
     z-index: 2;
 }

 .postcards29 {
     position: absolute;
     right: 21rem;
     bottom: 11rem;
     z-index: 2;
 }



 .postcards31 {
     position: absolute;
     left: -11rem;
     top: 16rem;
     z-index: 2;
 }



 .postcards32 {
     position: absolute;
     left: 3rem;
     top: 16rem;
     z-index: 2;
 }

 .postcards33 {
     position: absolute;
     left: 11rem;
     bottom: 17rem;
     z-index: 2;
 }

 .postcards34 {
     position: absolute;
     left: -16rem;
     bottom: 17rem;
     z-index: 2;
 }


 .postcards35 {
     position: absolute;
     left: 27rem;
     bottom: 30rem;
     z-index: 2;
 }

 .postcards36 {
     position: absolute;
     left: -10rem;
     bottom: 18rem;
     z-index: 2;
 }

 .postcards37 {
     position: absolute;
     right: 47rem;
     top: 16rem;
     z-index: 2;
 }

 .postcards38 {
     position: absolute;
     left: 25rem;
     bottom: 20rem;
     z-index: 2;
 }


 .postcards39 {
     position: absolute;
     left: 54rem;
     bottom: 15rem;
     z-index: 2;
 }

 .postcards40 {
     position: absolute;
     left: 69rem;
     bottom: 32rem;
     z-index: 2;
 }

 .postcards41 {
     position: absolute;
     left: -43rem;
     bottom: 24rem;
     z-index: 2;
 }


 .postcards42 {
     position: absolute;
     left: 62rem;
     bottom: 19rem;
     z-index: 2;
 }

 .postcards43 {
     position: absolute;
     left: -11rem;
     bottom: 25rem;
     z-index: 2;
 }

 .postcards44 {
     position: absolute;
     right: 23rem;
     top: 25rem;
     z-index: 2;
 }

 .postcards45 {
     position: absolute;
     right: 42rem;
     bottom: 26rem;
     z-index: 2;
 }

 .postcards46 {
     position: absolute;
     left: -11rem;
     bottom: 29rem;
     z-index: 2;
 }

 .postcards47 {
     position: absolute;
     left: 10rem;
     bottom: 25rem;
     z-index: 2;
 }





 .postcards {
     cursor: pointer;
 }

 @media (max-width: 1920px) {
     .modal-content.cards {
         max-width: 870px;
         max-height: 590px;

     }

     .modal-content.cards .modal-iframe {
         width: 870px !important;
         height: 590px !important;
     }

     .modal-content.cards .modal-close {
         top: -9px;
         right: -38px
     }

     .postcards img {
         height: 2rem;
     }

     .postcards1 {
         top: 17.5rem;
         right: 1rem;
     }

 }

 /***/


 .modal-close {
     position: absolute;
     top: 11px;
     right: 169px;
     cursor: pointer;
     background: transparent;
     border-radius: 50%;
     border: none;
     box-shadow: none;
 }



 .modal-close img {
     height: 52px;
     width: 52px;
 }

 .modal-close:hover {
     background: rgba(255, 255, 255, 0.5);
 }

 .modal-back {
     position: absolute;
     top: 70px;
     left: 218px;
     font-size: 16px;
     color: #333;
     cursor: pointer;
     z-index: 10000;
     background: transparent;
     padding: 8px 11px;
     border-radius: 4px;
     display: flex;
     justify-content: center;
     align-items: center;
     border: none;
 }

 .modal-back img {
     height: 52px;
     width: 52px;
 }


 .iframe-wrapper {
     width: 100%;
     height: 100%;
     display: flex;
     align-items: center;
     justify-content: center;
 }

 .iframe-wrapper.article-mode {
     width: 100% !important;
     height: 760px !important;
     margin-top: 4rem !important;
     margin: 0 auto;
 }

 .modal-iframe {
     width: 100%;
     height: 100%;
     border: none;
     height: 690px !important;

 }

 .intro-content-vertical {
     display: flex;
     flex-direction: row;
     justify-content: center;
     align-items: center;
     gap: 2rem;
     padding: 2.5rem;
     height: 100%;
 }

 .vertical-title {
     writing-mode: vertical-lr;
     text-orientation: upright;
     font-size: 3rem;
     color: #fff;
     letter-spacing: 0.5rem;
     margin: 0 auto;
 }

 .vertical-text {
     writing-mode: vertical-lr;
     text-orientation: mixed;
     font-size: 1.2rem;
     color: #fff;
     line-height: 2;
     letter-spacing: 0.2rem;
     max-height: 80vh;
     overflow: hidden;
     margin: 0 auto;
 }


 #intro-panel {
     position: relative;
     top: 0;
     left: 0;
     width: 100vw;
     height: 100%;
     flex-shrink: 0;
     z-index: 5;
     display: none;
 }


 .intro-page {
     position: relative;
     width: 100%;
     height: 100%;
     overflow: hidden;
 }

 #wrapper {
     display: none;
     width: 100vw;
     height: 100vh;
     overflow: hidden;
     position: fixed;
     top: 0;
     left: 0;
     z-index: 101;
 }



 .content {
     display: flex;
     width: max-content;
     height: 100%;
 }

 .content-inner .item {
     width: 93.6vw;
     height: 100%;
     flex-shrink: 0;
     display: flex;
     justify-content: center;
     align-items: center;
     color: white;
     background-color: transparent;
     background-size: 100% 100%;
     background-position: center;
     background-repeat: no-repeat;
 }


 .back-to-intro-btn {
     position: fixed;
     top: 20px;
     left: 20px;
     padding: 10px 20px;
     background: rgba(211, 195, 195, 0.2);
     color: #fff;
     border: 1px solid #fff;
     border-radius: 4px;
     cursor: pointer;
     font-size: 0.7rem;
     z-index: 10003;
     display: none;
 }

 .back-to-intro-btn:hover {
     background: rgba(211, 195, 195, 0.5);
 }

 .title-in {
     position: fixed;
     top: 1rem;
     right: 5rem;
     z-index: 10003;
     display: none;
 }

 .title-in img {
     display: block;
     height: auto;
 }

 .painting.show {
     opacity: 1;
 }



 .banner-people.show {
     opacity: 1;
     transform: translateY(0);
 }


 .five-elements-container {
     display: flex;
     flex-direction: column;
     justify-content: center;
     align-items: flex-end;
     position: fixed;
     top: 50%;
     right: 27rem;
     transform: translateY(-50%);
     z-index: 1;
     transition: opacity 1s ease-in-out;
     opacity: 1;
 }

 .five-elements-container.show {
     opacity: 1;
 }

 .five-element {
     opacity: 0;
     transform: translateX(50px);
     transition: opacity 0.6s ease, transform 0.6s ease;
     cursor: pointer;
     height: 8rem;
 }

 /* .five-element.init {
     width: 8rem;
     height: 8rem;
 } */

 .five-element:nth-child(odd) {
     align-self: flex-end;
     margin-right: 0;
 }

 .five-element:nth-child(even) {
     align-self: flex-start;
     margin-right: 2rem;
 }

 .five-element img {
     width: 100%;
     height: 100%;
 }

 .five-element.show {
     opacity: 1;
     transform: translateX(0);
 }

 .five-element.shrink {
     width: 9rem;
     height: 9rem;
     transition: width 0.8s ease, height 0.8s ease, line-height 0.8s ease;
 }

 .five-element a {
     display: block;
     color: #ffffff;

 }

.five-element:hover {
    transform: translateY(-3px) !important;
    transition: all 0.3s !important;
}

.five-element.show img {
    animation: fiveImgBlink 5s ease-in-out infinite;
}

.five-element.show:hover img {
    animation-play-state: paused;
}

.five-elements-container .five-element.show:nth-child(1) img {
    animation-delay: 0s;
}

.five-elements-container .five-element.show:nth-child(2) img {
    animation-delay: 1s;
}

.five-elements-container .five-element.show:nth-child(3) img {
    animation-delay: 2s;
}

.five-elements-container .five-element.show:nth-child(4) img {
    animation-delay: 3s;
}

.five-elements-container .five-element.show:nth-child(5) img {
    animation-delay: 4s;
}


/* 访问过（点位已变红）后停止闪烁 */
.five-element.visited img {
    animation: none;
    opacity: 1;
}

@keyframes fiveImgBlink {

    0%,
    100% {
        opacity: .5;
    }

    50% {
        opacity: 1;
    }
}


@keyframes scaleHint {

     0%,
     100% {
         transform: scale(1);
     }

     50% {
         transform: scale(1.1);
     }
 }

 .five-element.scale-hint {
     animation: scaleHint 1.5s ease-in-out;
 }


 .continue-hint {
     position: absolute;
     bottom: 2rem;
     left: 50%;
     /* transform: translateX(-50%); */
     display: flex;
     flex-direction: column;
     align-items: center;
     gap: 0.5rem;
     opacity: 0;
     transition: opacity 1s ease;
     animation: scrollHintBounce 2s ease-in-out infinite;
 }

 .continue-hint.show {
     opacity: 1;
 }

 .scroll-hint-mouse {
     width: 40px;
     height: 26px;
     border: 2px solid rgba(255, 255, 255, 0.6);
     border-radius: 13px;
     position: relative;
     display: flex;
     justify-content: center;
     padding-top: 8px;
 }

 .scroll-hint-dot {
     width: 8px;
     height: 4px;
     background: #ffffff;
     border-radius: 2px;
     animation: scrollHintDotMove 2s ease-in-out infinite;
 }

 .scroll-text {
     color: rgba(255, 255, 255, 0.8);
     font-size: 0.75rem;
     letter-spacing: 2px;
 }


 @keyframes scrollHintBounce {

     0%,
     100% {
         transform: translateX(-50%) translateY(0);
     }

     50% {
         transform: translateX(-50%) translateY(-8px);
     }
 }

 @keyframes scrollHintDotMove {

     0%,
     100% {
         opacity: 0.3;
         transform: translateX(0);
     }

     50% {
         opacity: 1;
         transform: translateX(-14px);
     }
 }

 /**/


 .slide-hint {
     position: absolute;
     bottom: 2rem;
     left: 0;
     right: 0;
     width: fit-content;
     margin: 0 auto;
     z-index: 999;
     pointer-events: none;
     display: none;
 }

 .slide-hint.active {
     display: block;
 }

 .slide-hint-text {
     font-size: 1rem;
     color: #fff;

 }

 .slide-hint-text span {
     display: inline-block;
     opacity: 0;
     transform: translateY(-30px) scale(0.3) rotate(15deg);
     filter: blur(8px);
     animation: none;
     transition: all 0.3s ease;
 }

 .slide-hint-text span.char-in {
     animation: charParticleIn 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
 }

 .slide-hint-text span.char-out {
     animation: charParticleOut 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
 }

 @keyframes charParticleIn {
     0% {
         opacity: 0;
         transform: translateY(-30px) scale(0.3) rotate(15deg);
         filter: blur(8px);
         text-shadow: 0 0 20px rgba(255, 255, 255, 0);
     }

     70% {
         opacity: 0.8;
         transform: translateY(5px) scale(1.2) rotate(-5deg);
         filter: blur(1px);
         text-shadow: 0 0 10px rgba(255, 255, 255, 0.8);
     }

     100% {
         opacity: 1;
         transform: translateY(0) scale(1) rotate(0deg);
         filter: blur(0);
         text-shadow: 0 0 0 rgba(255, 255, 255, 1);
     }
 }

 @keyframes charParticleOut {
     0% {
         opacity: 1;
         transform: translateY(0) scale(1) rotate(0deg);
         filter: blur(0);
         text-shadow: 0 0 0 rgba(255, 255, 255, 1);
     }

     30% {
         opacity: 0.8;
         transform: translateY(-5px) scale(1.2) rotate(5deg);
         filter: blur(1px);
         text-shadow: 0 0 10px rgba(255, 255, 255, 0.8);
     }

     100% {
         opacity: 0;
         transform: translateY(-30px) scale(0.3) rotate(15deg);
         filter: blur(8px);
         text-shadow: 0 0 20px rgba(255, 255, 255, 0);
     }
 }

 /**/



 .banner-list {
     position: absolute;
     left: 0;
     right: 0;
     margin: 0 auto;
     display: flex;
     justify-content: center;
     align-items: center;
     top: 1rem;
     max-width: 1920px
 }

 .banner-list img {
     opacity: 0;
     transform: translateY(20px);
     transition: opacity 0.4s ease, transform 0.4s ease;
     max-width: 100%;
     height: auto;
     /* margin: 0 -1rem; */

 }

 .banner-list img.show {
     opacity: 1;
     transform: translateY(0);
 }

 .banner-list .t1,
 .banner-list .t3,
 .banner-list .t5 {
     transition: transform 0.6s ease;
 }

 .banner-list .t2,
 .banner-list .t4 {
     transition: transform 0.6s ease;
 }

 .banner-list .t1.move,
 .banner-list .t3.move,
 .banner-list .t5.move {
     transform: translateY(10px);
 }

 .banner-list .t2.move,
 .banner-list .t4.move {
     transform: translateY(-20px);
 }

 .painting {
     opacity: 0;
     transition: opacity 0.8s ease;
     width: 1731px;
     height: 538px;
     position: absolute;
     left: 0px;
     top: 13rem;
     margin: 0 auto;
     right: 0;
     z-index: 99;
 }


 .banner-people {
     opacity: 0;
     transform: translateY(80px);
     transition: opacity 0.6s ease, transform 0.6s ease;
     position: absolute;
     top: 13rem;
     right: 23rem;
 }

 .culture {
     position: relative;
     height: 100%;
     opacity: 0;
     transform: translateY(50px);
     transition: opacity 0.3s ease, transform 0.3s ease;
     max-width: 1765px;
     margin: 0 auto;
     margin-top: 13.75rem;
 }

 .culture.show {
     opacity: 1;
     transform: translateY(0);
 }



 .blocks-container .content-inner .item {
     position: relative;
     cursor: default;
 }


 @keyframes fadeInDown {
     from {
         opacity: 0;
         transform: translate(-50%, -50%) scale(0.8);
     }

     to {
         opacity: 1;
         transform: translate(-50%, -50%) scale(1);
     }
 }

 @keyframes pulseGlow {

     0%,
     100% {
         transform: scale(1);
         filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.5));
     }

     50% {
         transform: scale(1.15);
         filter: drop-shadow(0 0 15px rgba(255, 255, 255, 0.9));
     }
 }

 @keyframes cityExpandPulse {

     0%,
     100% {
         opacity: 0.6;

     }

     50% {
         opacity: 1;

     }
 }

 .city-expand-item {
     width: 3.4rem;
     height: 3.4rem;
     border-radius: 8px;
     overflow: hidden;
     cursor: pointer;
     float: left;
     display: -ms-flexbox;
     display: flex;
     -ms-flex-align: center;
     align-items: center;
     margin-top: 20px;
     animation: cityExpandPulse 4s ease-in-out infinite;
     opacity: 0.6;

 }

 .city-expand-item:hover {
     opacity: 1 !important;
     animation-play-state: paused !important;
 }

 .city-expand-container .city-expand-item:nth-child(1) {
     animation-delay: 0s;
 }

 .city-expand-container .city-expand-item:nth-child(2) {
     animation-delay: 0.6s;
 }

 .city-expand-container .city-expand-item:nth-child(3) {
     animation-delay: 1.2s;
 }

 .city-expand-container .city-expand-item:nth-child(4) {
     animation-delay: 1.8s;
 }

 .city-expand-item:hover {
     animation-play-state: paused;
     transform: scale(1.1);
     border-color: rgba(255, 255, 255, 0.8);
     filter: drop-shadow(0 0 10px rgba(255, 255, 255, 0.8));
     transition: all 0.3s;
 }

 .city-expand-item img {
     width: 100%;
     height: 100%;
     /* object-fit: cover; */
 }


 #bg-music-player {
     position: fixed;
     top: 1.25rem;
     right: 1.25rem;
     z-index: 10001;
     display: none;
     cursor: pointer;
     width: 3rem;
     height: 3rem;
     border-radius: 50%;
     padding: 0.5rem;
     transition: background 0.3s ease;
 }



 #bg-music-player img {
     width: 100%;
     height: 100%;
     object-fit: contain;
 }

 #bg-music-player.playing img {
     animation: rotate 3s linear infinite;
 }

 @keyframes rotate {
     from {
         transform: rotate(0deg);
     }

     to {
         transform: rotate(360deg);
     }
 }


 .inscription {
     position: absolute;
     left: 24%;
     top: 0;
     height: 100%;
 }

 .colophon {
     position: absolute;
     right: 27%;
     top: 0;
     height: 100%;
 }


 .things {
     position: absolute;
     left: 0;
     top: 0;
     height: 100%;
     z-index: 1;
 }

 .river1 {
     position: absolute;
     left: 31%;
     top: 0;
     height: 100%;
 }

 .river2 {
     position: absolute;
     left: 34.5%;
     top: 0;
     height: 100%;
 }

 .river3 {
     position: absolute;
     left: 3.8%;
     top: 0;
     height: 100%;
 }

 .river4 {
     position: absolute;
     left: -46.6%;
     top: 0px;
     height: 100%;
 }

 .river5 {
     position: absolute;
     right: -5%;
     top: 0;
     height: 100%;
 }

 .river6 {
     position: absolute;
     right: 40.7%;
     top: 0;
     height: 100%;
 }

 .river7 {
     position: absolute;
     right: 24.5%;
     top: 0;
     height: 100%;
 }

 .river8 {
     position: absolute;
     right: 63%;
     top: 0;
     height: 100%;
 }

 @media (max-width: 1920px) {
     .river8 {
         right: 62.5%;
         top: 0px;
     }

 }


 .river9 {
     position: absolute;
     right: -8.8%;
     top: 0;
     height: 100%;
 }

 .river10 {
     position: absolute;
     right: 24%;
     top: 0px;
     height: 100%;
 }

 .river11 {
     position: absolute;
     right: 96.5%;
     top: 0;
     height: 100%;
 }


 .event {
     position: relative;
     left: 0;
     top: 0;
     transition: all 0.3s;
     right: 0;
     margin: 0 auto;
     display: table;
 }



 .event img {
     display: block;
 }

 /**/

 .postcards {
     cursor: pointer;
 }

 .post-marker {
     position: absolute;
     width: 6px;
     height: 6px;
     border-radius: 50%;
     cursor: pointer;
     transition: all 0.3s;
     z-index: 8;
     display: block;
     left: 50%;
     bottom: -10px;
     transform: translateX(-50%);
     background-color: #fff !important;
     box-shadow: 0 0 10px rgba(255, 255, 255, 0.8) !important;
 }

 .post-marker.visited {
     background-color: #d67c12 !important;
     box-shadow: 0 0 12px rgb(226 110 35 / 90%) !important;
 }

 .post-marker.visited .more-ripple {
     background: #d67c12 !important;
 }



.five-marker {
    position: absolute;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.3s;
    z-index: 8;
    display: block;
    right: 42px;
    bottom: 22px;
    background-color: #fff !important;
    box-shadow: 0 0 10px rgba(255, 255, 255, 0.8) !important;
}

 .five-marker.visited {
     background-color: #ff0000 !important;
     box-shadow: 0 0 10px rgba(255, 0, 0, 0.8) !important;
 }

 .five-marker.visited .five-ripple {
     background: #ff0000 !important;
 }

 .five-ripple {
     position: absolute;
     width: 40px;
     height: 40px;
     background: #ffffff;
     z-index: -1;
     left: 50%;
     top: 50%;
     opacity: 0;
     margin: -20px 0 0 -20px;
     border-radius: 100px;
     animation: five-ripple 1.8s infinite;
 }

 .five-ripple:nth-child(2) {
     animation-delay: .3s;
     -webkit-animation-delay: .3s;
 }

 .five-ripple:nth-child(3) {
     animation-delay: .6s;
     -webkit-animation-delay: .6s;
 }

 @keyframes five-ripple {
     0% {
         opacity: 1;
         transform: scale(0);
     }

     100% {
         opacity: 0;
         transform: scale(1);
     }
 }

 /**/
 #city1-expand {
     position: absolute;
     right: 26%;
     top: 9rem;
     z-index: 2;
 }

 #city2-expand {
     position: absolute;
     right: 0rem;
     top: 28rem;
     z-index: 2;
 }

 #city3-expand {
     position: absolute;
     left: 37%;
     top: 20rem;
     z-index: 2;
 }

 #city4-expand {
     position: absolute;
     left: 18%;
     top: 8rem;
     z-index: 9;
 }

 #city5-expand {
     position: absolute;
     right: 5%;
     top: 11rem;
     z-index: 9;
 }

 #city6-expand {
     position: absolute;
     left: 40%;
     top: 12rem;
     z-index: 9;
 }


 #city7-expand {
     position: absolute;
     left: 5%;
     top: 14rem;
     z-index: 99;
 }

 /* #city8-expand {
    position: absolute;
    right: 42%;
    top: 9rem;
} */


 #city9-expand {
     position: absolute;
     right: 39%;
     bottom: 21rem;
     z-index: 9;
 }


 #city10-expand {
     position: absolute;
     left: 15%;
     top: 15rem;
     z-index: 9;
 }

 #city11-expand {
     position: absolute;
     right: 20%;
     bottom: 24rem;
     z-index: 9;
 }

 #city12-expand {
     position: absolute;
     left: -9%;
     top: 8rem;
     z-index: 9;
 }

 #city13-expand {
     position: absolute;
     left: 65%;
     top: 16rem;
     z-index: 9;
 }

 #city14-expand {
     position: absolute;
     right: 48%;
     top: 11rem;
     z-index: 9;
 }

 #city15-expand {
     position: absolute;
     left: -15%;
     top: 10rem;
     z-index: 9;
 }

 #city16-expand {
     position: absolute;
     left: 0;
     bottom: 20rem;
     z-index: 9;
 }

 #city17-expand {
     position: absolute;
     left: 35%;
     top: 24rem;
     z-index: 9;
 }


 #city18-expand {
     position: absolute;
     left: 52%;
     bottom: 26rem;
     z-index: 9;
 }


 #city19-expand {
     position: absolute;
     left: 0;
     top: 22rem;
     z-index: 9;
 }


 #city20-expand {
     position: absolute;
     right: 19%;
     top: 9rem;
     z-index: 9;
 }

 #city21-expand {
     position: absolute;
     right: 38%;
     bottom: 33rem;
     z-index: 9;
 }

 .map-marker.visited {
     background-color: #ff0000 !important;
     box-shadow: 0 0 10px rgba(255, 0, 0, 0.8) !important;
 }

 .map-marker.visited .more-ripple {
     background: #ff0000 !important;
 }

 .map-marker:not(.visited) {
     background-color: #fff !important;
     box-shadow: 0 0 10px rgba(255, 255, 255, 0.8) !important;
 }

 .map-marker {
     position: absolute;
     width: 6px;
     height: 6px;
     border-radius: 50%;
     transition: all 0.3s;
     z-index: 8;
     display: block;
     left: 50%;
     bottom: -10px;
     transform: translateX(-50%);
 }


 .more-ripple {
     position: absolute;
     width: 40px;
     height: 40px;
     background: #ffffff;
     z-index: -1;
     left: 50%;
     top: 50%;
     opacity: 0;
     margin: -20px 0 0 -20px;
     border-radius: 100px;
     animation: more-ripple 1.8s infinite;
 }

 .more-ripple:nth-child(2) {
     animation-delay: .3s;
     -webkit-animation-delay: .3s;
 }

 .more-ripple:nth-child(3) {
     animation-delay: .6s;
     -webkit-animation-delay: .6s;
 }

 @keyframes more-ripple {
     0% {
         opacity: 1;
         transform: scale(0);
     }

     100% {
         opacity: 0;
         transform: scale(1);
     }
 }

 .scroll-progress-bar {
     position: fixed;
     bottom: 2rem;
     right: 2rem;
     width: 600px;
     height: 40px;
     z-index: 11;
     overflow: visible;
     cursor: pointer;
     display: none;
 }

 .scroll-progress-bar .progress-svg {
     position: absolute;
     top: 0;
     left: 0;
     width: 600px;
     height: 40px;
 }

 .scroll-progress-bar .progress-fill {
     height: 100%;
     width: 0%;
     transition: width 0.3s ease;
     position: relative;
     z-index: 3;
 }


 .scroll-progress-bar .progress-fill::after {
     content: '';
     position: absolute;
     right: -30px;
     top: 50%;
     transform: translateY(-50%);
     width: 60px;
     height: 60px;
     background: url('btn.png') no-repeat center;
     background-size: 100% 100%;
 }

 .zt-logo {
     position: absolute;
     bottom: 59px;
     right: 40px;
     width: 6rem;
     display: block;
 }

 .scroll-hint {
     position: absolute;
     bottom: 5rem;
     left: 50%;
     background: rgb(255, 255, 255, 0.6);
     padding: 10px 20px;
     border-radius: 20px;
     font-size: 14px;
     z-index: 10001;
     animation: scrollHintBounce 2s infinite;
     pointer-events: none;
 }

 @keyframes scrollHintBounce {

     0%,
     100% {
         transform: translateX(-50%) translateY(0);
     }

     50% {
         transform: translateX(-50%) translateY(-10px);
     }
 }

 .snow {
     position: absolute;
     left: 48.2rem;
     top: 0;
     height: 100%;
 }

 .rains {
     position: absolute;
     top: 6rem;
     left: 14rem;
     width: 177rem;
     overflow: hidden;
     pointer-events: none;
     z-index: 1;
     bottom: 10rem;
 }


 .rain-drop {
     position: absolute;
     width: 1px;
     height: 20px;
     background: linear-gradient(to bottom, transparent, #ffffff);
     animation: rain-fall linear infinite;
     transform: rotate(25deg);
     transform-origin: top center;
 }

 @keyframes rain-fall {
     0% {
         transform: rotate(25deg) translateY(-100px) translateX(-50px);
         opacity: 0;
     }

     10% {
         opacity: 1;
     }

     90% {
         opacity: 1;
     }

     100% {
         transform: rotate(25deg) translateY(100vh) translateX(100px);
         opacity: 0;
     }
 }



 .snows {
     position: absolute;
     left: 34rem;
     top: 4rem;
     overflow: hidden;
     pointer-events: none;
     z-index: 1;
     width: 100%;
     bottom: 6rem;
 }

 .snow-drop {
     position: absolute;
     width: 3px;
     height: 3px;
     background: radial-gradient(circle, #ffffff, rgba(255, 255, 255, 0.8));
     border-radius: 50%;
     animation: snow-fall linear infinite;
     box-shadow: 0 0 3px rgba(255, 255, 255, 0.5);
 }

 @keyframes snow-fall {
     0% {
         transform: translateY(-20px) translateX(0px);
         opacity: 0;
     }

     10% {
         opacity: 1;
     }

     25% {
         transform: translateY(25vh) translateX(15px);
     }

     50% {
         transform: translateY(50vh) translateX(-15px);
     }

     75% {
         transform: translateY(75vh) translateX(10px);
     }

     90% {
         opacity: 1;
     }

     100% {
         transform: translateY(100vh) translateX(-10px);
         opacity: 0;
     }
 }






 /**/
 .qr-txt {
     font-size: 0.8rem;
     display: table-caption;
     margin-right: 30px;
     font-family: cursive;
     color: #ffffff;
 }

 .qr-code-trigger {
     position: fixed;
     right: 0;
     top: 50%;
     transform: translateY(-50%);
     z-index: 1000;
     cursor: pointer;
     display: none;
 }

 .qr-code-trigger.show {
     display: block;
     animation: fadeInRight 0.5s ease;
 }

 .qr-arrow {
     position: absolute;
     right: 0;
     top: 50%;
     transform: translateY(-50%);
     width: 0;
     height: 0;
     border-top: 20px solid transparent;
     border-bottom: 20px solid transparent;
     border-right: 20px solid #fff;
     filter: drop-shadow(-2px 2px 6px rgba(0, 0, 0, 0.4));
     animation: arrowPulse 2s infinite;
     z-index: 10;
 }

 .qr-arrow::after {
     content: '+';
     position: absolute;
     left: 8px;
     top: 50%;
     transform: translateY(-50%);
     font-size: 1rem;
     color: #c58c47;
     line-height: 1;
 }

 .qr-code-popup {
     position: absolute;
     right: 20px;
     top: 50%;
     transform: translateY(-50%) translateX(100%);
     background: #fff;
     border-radius: 10px;
     box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
     opacity: 0;
     transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
     pointer-events: none;
 }

 .qr-code-popup::before {
     content: '';
     position: absolute;
     right: -8px;
     top: 50%;
     transform: translateY(-50%);
     width: 0;
     height: 0;
     border-top: 10px solid transparent;
     border-bottom: 10px solid transparent;
     border-left: 8px solid #fff;
 }

 .qr-code-trigger:hover .qr-code-popup {
     transform: translateY(-50%) translateX(0);
     opacity: 1;
     pointer-events: auto;
 }

 .qr-code-trigger:hover .qr-arrow {
     animation: none;
     opacity: 0.3;
 }

 .qr-code-popup img {
     width: 180px;
     height: 180px;
     display: block;
 }

 @keyframes fadeInRight {
     from {
         opacity: 0;
         transform: translateY(-50%) translateX(20px);
     }

     to {
         opacity: 1;
         transform: translateY(-50%) translateX(0);
     }
 }

 @keyframes arrowPulse {

     0%,
     100% {
         transform: translateY(-50%) translateX(0);
     }

     50% {
         transform: translateY(-50%) translateX(8px);
     }
 }

 /*1018*/

 /* .yz-cards {
    position: absolute;
    right: 0rem;
    bottom: 14rem;
    z-index: 5;
    display: grid;
    grid-template-columns: repeat(2, auto);
    align-items: center;
    justify-items: center;
    gap: 1rem 1.6rem;
} */

 .yz-cards {
     position: absolute;
     right: -2rem;
     bottom: 12rem;
     z-index: 5;
     display: grid;
     grid-template-columns: repeat(2, auto);
     align-items: center;
     justify-items: center;
     gap: 3rem;
 }

.yz-card {
    cursor: pointer;
    position: relative;
}

/* 印章卡片的光圈点位：与其它点位(post-marker/five-marker)一致的闪烁提示 */
.yz-marker {
    position: absolute;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.3s;
    z-index: 8;
    display: block;
    right: 0;
    bottom: -10px;
    transform: translateX(-50%);
    background-color: #fff !important;
    box-shadow: 0 0 10px rgba(255, 255, 255, 0.8) !important;
}

/* 访问记录：点击过变为红色 */
.yz-card.visited .yz-marker {
    background-color: #ff0000 !important;
    box-shadow: 0 0 12px rgba(255, 0, 0, 0.9) !important;
}

.yz-card.visited .yz-marker .more-ripple {
    background: #ff0000 !important;
}

.yz-cards .yz-card img {
     display: block;
     width: auto;
     transition: opacity .3s ease, transform .25s ease;
 }

 .yz-cards .yz-card:hover img {
     transform: scale(1.08);
 }


 .yz-cards .yz-card img.loaded {
     animation: yzBlink 1.6s ease-in-out infinite;
 }

 .yz-cards .yz-card:nth-child(1) img.loaded {
     animation-delay: 0s;
 }

 .yz-cards .yz-card:nth-child(2) img.loaded {
     animation-delay: .4s;
 }

 .yz-cards .yz-card:nth-child(3) img.loaded {
     animation-delay: .8s;
 }

 .yz-cards .yz-card:nth-child(4) img.loaded {
     animation-delay: 1.2s;
 }


 .yz-cards .yz-card.visited img.loaded {
     animation: none;
     opacity: 1;
     filter: none;
 }

 @keyframes yzBlink {

     0%,
     100% {
         opacity: .5;
         filter: brightness(1) drop-shadow(0 0 0 rgba(255, 216, 150, 0));
     }

     50% {
         opacity: 1;
         filter: brightness(1.3) drop-shadow(0 0 12px rgba(255, 222, 165, .9));
     }
 }


 /**小屏幕1920*/

 @media (max-width: 1920px) {
     .five-marker{
       right: 31px;
       bottom: 16px;  
     }

     #city15-expand {
         top: 7rem;
     }

     #city5-expand {
         top: 8rem;
     }

     .postcards29 {
         right: 20rem;
         bottom: 10rem;
     }

     .postcards8 {
         left: 41.5rem;
         top: 23.5rem;
     }

     .postcards39 {
         left: 53rem;
     }

     .postcards40 {
         left: 68rem;
         bottom: 30rem;
     }

     .postcards43 {
         bottom: 23rem;
     }

     .postcards28 {
         bottom: 28rem;
     }

     #city12-expand {
         left: -9%;
     }

     .yz-cards {
         right: -4rem;
         bottom: 13rem;
         gap: 2rem 2rem;
     }

     .yz-cards .yz-card img {
         height: 5.5rem;
     }

     .scroll-hint-dot {
         width: 8px;
         height: 4px;
     }

     @keyframes scrollHintDotMove {

         0%,
         100% {
             opacity: 0.3;
             transform: translateX(0);
         }

         50% {
             opacity: 1;
             transform: translateX(-5px);
         }
     }

     .colophon {
         right: 28%;

     }

     .five-elements-container {
         right: 25rem;

     }

     .modal-back {
         top: 47px;
         left: 160px;

     }

     .scroll-hint-mouse {
         width: 33px;
         height: 20px;
         border: 1px solid rgba(255, 255, 255, 0.6);
     }





     .content-inner .item {
         width: 89.5vw;

     }

     .culture {
         width: 90rem;
         margin-top: 13.75rem;
     }

     .banner-list {
         width: 100%;
         box-sizing: border-box;
         max-width: 1000px;
         flex-direction: row;
         justify-content: center;
         align-items: center;
     }


     .banner-list img {
         height: 12rem;
         display: block;
     }

     .painting {
         width: 100%;
         top: 12rem;
     }

     .painting img {
         display: block;
         width: 100%;
     }

     .banner-people img {
         height: 185px;
         display: block;
         width: 100%;
     }

     .banner-people {
         top: 15rem;

     }

     .five-elements-container.show {
         top: 63%;
     }

     .continue-hint {
         bottom: 1rem;
     }

     .modal-content {
         background-position-x: -41px;
     }

     .modal-close {
         top: 15px;
         right: 118px;

     }

     .modal-close img {
         height: 39px;
         width: 39px;
     }

     .scroll-hint {
         padding: 5px 10px;
         font-size: 12px;

     }

     .iframe-wrapper.article-mode {
         height: 550px !important;

     }

     .modal-iframe {
         height: 550px !important;

     }

     .scroll-progress-bar {
         bottom: 1.5rem;
     }

 }


 /**/

 img {
     -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
     user-select: none;
     -webkit-user-select: none;
     outline: none;
     -webkit-outline: none;
 }

 .popup,
 .city-expand-container,
 .modal-overlay,
 .modal-overlay * {
     -webkit-user-select: none !important;
     user-select: none !important;
 }

 .popup ::selection,
 .city-expand-container ::selection,
 .modal-overlay ::selection {
     background: transparent;
     color: inherit;
 }




 .item img {
     opacity: 0;
     transition: opacity 0.3s ease;
 }

 .item img.loaded {
     opacity: 1;
 }