html, body {
    margin: 0;
    width: 100%;
    height: 100%;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
    background-color: #8DE3F1;
    font-size: 0.14rem;
}

div {
    box-sizing: border-box;
}

img, span {
    display: block;
}

.main {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.main .main-content {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 750px;
    width: 100%;
    height: 100%;
    background-image: url("/img/bg.png");
    background-position: center top;
    background-repeat: no-repeat;
    background-size: cover;
}

.main .main-content .girl-bg {
    position: absolute;
    left: 50%;
    top: 0.155rem;
    transform: translateX(-50%);
    width: 3.06rem;
    height: 2.715rem;
    background-image: url("/img/girl.png");
    background-position: center top;
    background-repeat: no-repeat;
    background-size: cover;
}

.main .main-content.has-code .girl-bg {
    background-image: url("/img/girl-code.png");
    background-size: contain;
}

.main .main-content:not(.has-code) .girl-bg::before {
    content: "";
    position: absolute;
    left: 0.40rem;
    top: 0.2rem;
    height: 0.505rem;
    width: 0.338rem;

    background-image: url("/img/girl-icon-left.png");
    background-position: center top;
    background-repeat: no-repeat;
    background-size: cover;
}

.main .main-content:not(.has-code) .girl-bg::after {
    content: "";
    position: absolute;
    right: 0.2rem;
    top: 0.1rem;
    width: 0.445rem;
    height: 0.57rem;
    background-image: url("/img/girl-icon-right.png");
    background-position: center top;
    background-repeat: no-repeat;
    background-size: cover;
}

.main .main-content .info-warp {
    margin-top: 2.565rem;
}

.main .main-content.has-code .info-warp {
    margin-top: 1.58rem!important;
}

.main .main-content .info-warp,
.main .main-content .promotional-warp {
    width: 100%;
    background-color: transparent;
    padding: 0 0.225rem 0;
    flex-shrink: 0;
}

.main .main-content:not(.has-code) .promotional-warp {
    display: none!important;
}

.main .main-content.has-code .promotional-warp {
    position: relative;
    margin-top: 0.07rem !important;
}

.promotional-warp::after {
    position: absolute;
    content: "";
    right: 0.475rem;
    top: -0.2rem;
    height: 0.35rem;
    width: 0.23rem;
    background-image: url("/img/link.png");
    background-position: center 100%;
    background-repeat: no-repeat;
    background-size: contain;
    z-index: 9;
}

.promotional-warp::before {
    position: absolute;
    content: "";
    left: 0.475rem;
    top: -0.17rem;
    height: 0.35rem;
    width: 0.23rem;
    background-image: url("/img/link.png");
    background-position: center 100%;
    background-repeat: no-repeat;
    background-size: contain;
    z-index: 9;
}

.promotional-content,
.info-content {
    position: relative;
    background-color: #fff;
    width: 100%;
    min-height: 2.45rem;
    border-radius: 0.19rem;
    box-shadow: 0 -0.01rem 0.02rem 0 #A8CEFF inset;
    display: flex;
    flex-direction: column;
}

.main .main-content .promotional-content,
.main .main-content.has-code.one-channel .info-content {
    min-height: auto;
}

.main .main-content.has-code.one-channel .girl-bg{
    top: 0.52rem;
}

.main .main-content.has-code.one-channel .info-warp{
    margin-top: 1.915rem!important;
}

.main .main-content .promotional-warp .promotional-content {
    padding: 0.185rem 0.12rem;
}

.main .main-content .promotional-warp .promotional-content .promotional-title {
    color: #000000;
    font-size: 0.18rem;
    font-weight: 500;
    display: flex;
    flex-direction: row;
    align-items: center;
}

.promotional-warp .promotional-content .promotional-title span {
    font-weight: 500;
    font-size: 0.28rem;
    color: #FD9D10;
    margin-left: 0.05rem;
}

.promotional-warp .promotional-content .promotional-code {
    background-color: #469AFF;
    border-radius: 0.05rem;
    height: 0.45rem;
    width: 100%;
    font-size: 0.15rem;
    color: #FFFFFF73;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding-left: 0.15rem;
}

.promotional-code .code {
    display: flex;
    flex-direction: row;
    align-items: center;
    font-weight: 600;
    font-size: 0.18rem;
    color: #FFFFFF;
    flex: 1;
    justify-content: right;
}

.promotional-code .copy-icon {
    width: 0.33rem;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-shrink: 0;
}

.promotional-code .copy-icon img {
    width: 0.12rem;
    height: 0.12rem;
    position: relative;
    top: 0.01rem;
}

.tip-text {
    margin-top: 0.08rem;
    font-weight: 500;
    font-size: 0.12rem;
    color: #3A465E;
    padding-left: 0.05rem;
}

.info-list {
    flex: 1;
    padding: 0.19rem 0.125rem 0;
}

.app-install-warp {
    width: 100%;
    background-image: url("/img/app-install-bg.png");
    background-position: left;
    background-repeat: no-repeat;
    background-size: cover;
    height: 0.58rem;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 0 0.145rem 0 0.18rem;
}

.app-install-warp:not(:first-child) {
    margin-top: 0.13rem;
}

.app-icon-box {
    background-image: url("/img/app-icon-box.png");
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    width: 0.35rem;
    height: 0.35rem;
    flex-shrink: 0;
    overflow: hidden;
    border-radius: 0.07rem;
    padding: 0.04rem;
}

.app-icon-box img {
    width: 100%;
    height: 100%;
    border-radius: inherit;
}

.app-type {
    font-weight: 500;
    font-size: 0.15rem;
    color: #000000;
    padding-left: 0.135rem;
    flex: 1;
}

.install-btn {
    flex-shrink: 0;
    background-image: url("/img/install-btn.png");
    background-position: left;
    background-repeat: no-repeat;
    background-size: cover;
    width: 0.59rem;
    height: 0.34rem;
    border: none;
    background-color: transparent;
    cursor: pointer;
}

.app-info {
    flex-shrink: 0;
    width: 100%;
    background: #469AFF1A;;
    margin-bottom: 0.27rem;
    padding: 0.05rem 0.22rem;
    font-size: 0.13rem;
    font-weight: 500;
    color: #1C6EF7;
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin-top: 0.15rem;
}

.app-info .platform,
.app-info .match {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
}


.bottom-float {
    position: relative;
    left: 0;
    bottom: 0;
    width: 100%;
    background-image: url("/img/bottom-float.png");
    background-position: center top;
    background-repeat: no-repeat;
    background-size: cover;
    height: 1.69rem;
    display: flex;
    flex-direction: row;
}

.float-warp {
    width: 100%;
    height: 100%;
    padding: 0.44rem 0.2rem 0.135rem 0.245rem;
    display: flex;
    flex-direction: row;
}

.float-warp .left-box {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.float-warp .left-box .collect-tip-warp {
    padding-left: 0.1rem;
}

.float-warp .left-box .collect-tip-warp .collect-tip {
    background-image: url("/img/collect-tip.png");
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    width: 1.9rem;
    height: 0.69rem;
}

.float-warp .left-box .online-service {
    margin-top: 0.05rem;
    background-image: url("/img/online-service.png");
    background-position: left top;
    background-repeat: no-repeat;
    background-size: cover;
    width: 2.12rem;
    height: 0.32rem;
}

.qrcode-warp {
    flex-shrink: 0;
    width: 0.96rem;
    height: 1.12rem;
    background-color: #fff;
    padding: 0.075rem 0.08rem 0.03rem;
    border-radius: 0.085rem;
}

.qrcode-warp .qrcode-content {
    width: 0.8rem;
    height: 0.8rem;
    background-color: #D3ECF0;
    padding: 0.075rem;
}

.qrcode-warp span {
    margin-top: 0.02rem;
    font-size: 0.13rem;
    text-align: center;
    color: #434343;
}

.qrcode-warp #qrcode canvas,
.qrcode-warp #qrcode img {
    width: 100%;
    height: 100%;
}

.float-template {
    display: none;
}

.girl-bg::before,
.girl-bg::after {
    animation: float-updown 2s ease-in-out infinite;
}

.cuiLoader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: rgba(0, 0, 0, 1);
    opacity: 1;
    z-index: 999;
    transition: opacity 0.3s ease-in-out;
}

.cuiLoader.hide {
    opacity: 0;
    z-index: -1;
}

.cuiLoader .cuiLoaderBlock {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 1;
    text-align: center;
    transform: translate(-50%, -50%);
}

.cuiLoader .cuiLoaderBlock .cuiLoading {
    height: 12em;
    width: 12em;
    border: 0.5em solid transparent;
    border-radius: 500%;
    animation: cui-loading 1s infinite linear;
}

.cuiLoader .cuiLoaderBlock .text {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    font-size: 120%;
    text-align: center;
    font-weight: 500%;
    letter-spacing: 3px;
    color: #fff;
    transform: translate(-50%, -50%);
}

@keyframes cui-loading {
    0% {
        border-right-color: transparent;
        transform: rotate(0deg);
    }

    70% {
        border-right-color: #2196f3;
        transform: rotate(300deg);
    }

    90% {
        border-right-color: transparent;
        transform: rotate(320deg);
    }

    100% {
        border-right-color: transparent;
        transform: rotate(360deg);
    }
}

@keyframes float-updown {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-8px); /* 可根据实际调整浮动幅度 */
    }
}

@media screen and (max-height: 668px) {
    .float-template {
        display: block;
    }
}

@media screen and (max-width: 450px) {
    .main .main-content {
        height: calc(var(--vh, 1vh) * 100);
    }

    .main .main-content.has-code:not(.one-channel) {
        height: calc(var(--vh, 1vh) * 100 + 6vh);
    }

    .bottom-float {
        position: fixed;
    }
}
