/* index.html */
/* ===== 管线布局（卡片式阶段节点） ===== */
        .index-pipeline .index-title {
            margin-bottom: 0;
        }
        .sec-lead {
            text-align: center;
            font-size: 0.17rem;
            color: #666;
            margin: 0.24rem 0 0.5rem;
        }
        .index-pipeline table {
            table-layout: fixed;
        }
        .index-pipeline .node-card {
            position: relative;
            z-index: 1;
            margin: 0 auto;
            width: 92%;
            max-width: 1.7rem;
            background: #f2f8fd;
            border: 2px solid #c9def0;
            border-radius: 0.1rem;
            padding: 0.12rem 0.06rem 0.14rem;
            text-align: center;
            opacity: 0;
            transform: translateY(0.14rem) scale(0.85);
            transition: opacity 0.55s ease, transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
        }
        .index-pipeline .node-card b {
            display: block;
            font-size: 0.17rem;
            font-weight: 700;
            color: #2e75b6;
            line-height: 1.3;
        }
        .index-pipeline .node-card span {
            display: block;
            font-size: 0.13rem;
            color: #666;
            margin-top: 0.04rem;
            white-space: nowrap;
        }
        .index-pipeline .node-card em {
            display: block;
            font-style: normal;
            font-size: 0.12rem;
            font-weight: 600;
            color: #9aa7b1;
            margin-top: 0.06rem;
        }
        .index-pipeline .node-card.cur {
            background: #eaf4fc;
            border-color: #5aa7e8;
        }
        .index-pipeline .node-card.cur em {
            color: #5aa7e8;
        }
        .index-pipeline.inview .node-card {
            opacity: 1;
            transform: none;
        }
        /* 卡片/圆点/轨道按阶段列从左到右依次加载 */
        .index-pipeline.inview tbody td.stage:nth-child(2) .node-card,
        .index-pipeline.inview tbody td.stage:nth-child(2) i,
        .index-pipeline.inview tbody td.stage.current:nth-child(2)::before {
            transition-delay: 0.1s;
        }
        .index-pipeline.inview tbody td.stage:nth-child(3) .node-card,
        .index-pipeline.inview tbody td.stage:nth-child(3) i,
        .index-pipeline.inview tbody td.stage.current:nth-child(3)::before {
            transition-delay: 0.35s;
        }
        .index-pipeline.inview tbody td.stage:nth-child(4) .node-card,
        .index-pipeline.inview tbody td.stage:nth-child(4) i,
        .index-pipeline.inview tbody td.stage.current:nth-child(4)::before {
            transition-delay: 0.6s;
        }
        .index-pipeline.inview tbody td.stage:nth-child(5) .node-card,
        .index-pipeline.inview tbody td.stage:nth-child(5) i,
        .index-pipeline.inview tbody td.stage.current:nth-child(5)::before {
            transition-delay: 0.85s;
        }
        .index-pipeline .pl-foot {
            display: flex;
            justify-content: center;
            flex-wrap: wrap;
            align-items: center;
            gap: 0.3rem;
            margin-top: 0.24rem;
            font-size: 0.14rem;
            color: #666;
        }
        .index-pipeline .pl-foot .lg {
            display: inline-flex;
            align-items: center;
            gap: 0.08rem;
        }
        .index-pipeline .pl-foot .sw {
            display: inline-block;
            width: 14px;
            height: 10px;
            border-radius: 3px;
            background: #f2f8fd;
            border: 2px solid #c9def0;
        }
        .index-pipeline .pl-foot .sw-pre {
            background: #eaf4fc;
            border-color: #5aa7e8;
        }
        .index-pipeline .pl-foot .more {
            color: #9aa7b1;
        }

        /* 技术平台 / 团队介绍：与新闻等区域保持相近高度，内容垂直居中 */
        .index-platform .wal,
        .index-team .wal {
            min-height: 11.2rem;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
            -ms-flex-direction: column;
            flex-direction: column;
            -webkit-box-pack: center;
            -ms-flex-pack: center;
            justify-content: center;
            box-sizing: border-box;
        }

        /* 技术平台卡片：三条记录统一高度，内部结构协调 */
        .index-platform .list .item {
            height: 100%;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
            -ms-flex-direction: column;
            flex-direction: column;
            box-sizing: border-box;
        }
        .index-platform .list .item .advantage {
            margin-bottom: 0.2rem;
        }
        .index-platform .list .item .feature {
            -webkit-box-flex: 1;
            -ms-flex: 1 1 auto;
            flex: 1 1 auto;
        }
        @media (prefers-reduced-motion: reduce) {
            .index-pipeline .node-card { opacity: 1; transform: none; transition: none; }
        }
        @media screen and (max-width: 800px) {
            .sec-lead {
                font-size: 0.15rem;
                margin: 0.16rem 0 0.3rem;
            }
            .index-pipeline .pl-foot {
                gap: 0.16rem;
            }
            .index-pipeline .node-card span {
                font-size: 0.12rem;
            }
        }

/* about.html */
.page-title h2 span {
                font-size: 0.3rem;
            }
            .about-clients .wal {
                padding: 1.4rem 0;
            }
            .about-clients .list ul {
                display: -ms-grid;
                display: grid;
                -ms-grid-columns: (1fr)[7];
                grid-template-columns: repeat(7, 1fr);
                grid-gap: 0.2rem;
                margin-top: 0.6rem;
            }
            .about-clients .list li a {
                display: block;
   
            }
            .about-clients .list li a img {
                height: 1.2rem;
            }
            .about-clients .list li a .name {
                text-align: center;
                padding-bottom: 0.1rem;
                font-size: 0.16rem;
            }
            @media screen and (max-width: 800px) {
                .about-clients .list ul {
                    -ms-grid-columns: (1fr)[4];
                    grid-template-columns: repeat(4, 1fr);
                }
            }

/* about.html */
.about-banner {
        width: 100%;
        height: 4.2rem;
        overflow: hidden;
    }
    .about-banner img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }
    @media screen and (max-width: 800px) {
        .about-banner {
            height: 2.8rem;
        }
    }

    .p-content .linear {
        font-weight: bold;
    }
    .side-bar a {
        background: none;
    }
    .faqs .list > ul > li .container .row .content {
        width: auto;
    }
    .page-nav ul {
        display: none;
    }

    .g-foot > .wal {
        padding-bottom: 0.4rem;
    }

    /* 关于简接 */
    .about-intro {
        background: #fff;
    }
    .about-intro .wal {
        padding: 1.4rem 0;
    }
    .about-intro .intro-grid {
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -webkit-align-items: center;
        -ms-flex-align: center;
        align-items: center;
        gap: 0.6rem;
    }
    .about-intro .intro-text {
        -webkit-flex: 1;
        -ms-flex: 1;
        flex: 1;
    }
    .about-intro .intro-img {
        -webkit-flex: 1;
        -ms-flex: 1;
        flex: 1;
        height: 4.4rem;
        border-radius: 0.12rem;
        overflow: hidden;
        box-shadow: 0 0.06rem 0.2rem rgba(0,0,0,0.1);
    }
    .about-intro .intro-img img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }
    .about-intro .content p {
        font-size: 0.18rem;
        color: #555;
        line-height: 2;
        text-indent: 2em;
        margin-bottom: 0.3rem;
    }
    .about-intro .highlights {
        display: -ms-grid;
        display: grid;
        -ms-grid-columns: (1fr)[4];
        grid-template-columns: repeat(4, 1fr);
        grid-gap: 0.24rem;
        margin-top: 0.6rem;
    }
    .about-intro .hl-item {
        background: #f8fafb;
        border-radius: 0.1rem;
        padding: 0.4rem 0.2rem;
        text-align: center;
        position: relative;
        overflow: hidden;
    }
    .about-intro .hl-item:before {
        content: "";
        position: absolute;
        left: 0;
        bottom: 0;
        width: 100%;
        height: 0.04rem;
        background: linear-gradient(90deg, #2e75b6, #65d5a9);
    }
    .about-intro .hl-item .num {
        font-size: 0.36rem;
        font-weight: 700;
        color: #2e75b6;
        margin-bottom: 0.08rem;
    }
    .about-intro .hl-item .name {
        font-size: 0.15rem;
        color: #777;
    }
    @media screen and (max-width: 800px) {
        .about-intro .wal {
            padding: 0.8rem 0;
        }
        .about-intro .intro-grid {
            -webkit-box-orient: vertical;
            -webkit-flex-direction: column;
            -ms-flex-direction: column;
            flex-direction: column;
        }
        .about-intro .intro-img {
            -webkit-flex: 1 1 auto;
            -ms-flex: 1 1 auto;
            flex: 1 1 auto;
            width: 100%;
            order: -1;
        }
        .about-intro .intro-img img {
            height: 2.6rem;
        }
        .about-intro .highlights {
            -ms-grid-columns: (1fr)[2];
            grid-template-columns: repeat(2, 1fr);
        }
        .about-intro .hl-item .num {
            font-size: 0.3rem;
        }
    }

    /* 发展历程 - 左侧时间轴 */
    .about-3 .wal {
        padding: 1.4rem 0;
    }
    .about-3 .timeline {
        margin-top: 0.6rem;
        max-width: 9rem;
        margin-left: auto;
        margin-right: auto;
    }
    .about-3 .timeline ul {
        position: relative;
        padding-left: 1.6rem;
    }
    .about-3 .timeline ul:before {
        content: "";
        position: absolute;
        left: 0.5rem;
        top: 0;
        bottom: 0;
        width: 2px;
        background: linear-gradient(180deg, #2e75b6, #65d5a9);
        border-radius: 1px;
    }
    .about-3 .timeline li {
        position: relative;
        padding-bottom: 0.5rem;
    }
    .about-3 .timeline li:last-child {
        padding-bottom: 0;
    }
    .about-3 .timeline .dot {
        position: absolute;
        left: -1.14rem;
        top: 0.06rem;
        width: 0.14rem;
        height: 0.14rem;
        background: #fff;
        border: 3px solid #2e75b6;
        border-radius: 50%;
        z-index: 1;
    }
    .about-3 .timeline .year {
        font-size: 0.2rem;
        font-weight: 700;
        color: #fff;
        margin-bottom: 0.08rem;
    }
    .about-3 .timeline .text {
        font-size: 0.2rem;
        color: #fff;
        line-height: 1.6;
    }
    @media screen and (max-width: 800px) {
        .about-3 .wal {
            padding: 0.8rem 0;
        }
        .about-3 .timeline ul {
            padding-left: 1.2rem;
        }
        .about-3 .timeline ul:before {
            left: 0.4rem;
        }
        .about-3 .timeline .dot {
            left: -0.84rem;
            width: 0.12rem;
            height: 0.12rem;
        }
        .about-3 .timeline .year {
            font-size: 0.18rem;
        }
        .about-3 .timeline .text {
            font-size: 0.16rem;
        }
    }

    /* 核心团队 - 与首页团队介绍一致 */
    .about-2 {
        background: #fff;
    }
    .about-2 .wal {
        padding: 1.4rem 0;
    }
    .about-2 .team-list ul {
        display: -ms-grid;
        display: grid;
        -ms-grid-columns: (1fr)[2];
        grid-template-columns: repeat(2, 1fr);
        grid-gap: 0.4rem;
        margin-top: 0.6rem;
    }
    .about-2 .team-list .item {
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -webkit-align-items: center;
        -ms-flex-align: center;
        align-items: center;
        padding: 0.4rem;
        background: #fafbfc;
        border-radius: 0.12rem;
        transition: box-shadow 0.3s, transform 0.3s;
    }
    .about-2 .team-list .item:hover {
        box-shadow: 0 0.06rem 0.2rem rgba(0, 0, 0, 0.1);
        transform: translateY(-0.03rem);
    }
    .about-2 .team-list .photo {
        width: 1.4rem;
        height: 1.4rem;
        border-radius: 50%;
        overflow: hidden;
        -webkit-flex-shrink: 0;
        -ms-flex-negative: 0;
        flex-shrink: 0;
        margin-right: 0.36rem;
        box-shadow: 0 0.04rem 0.16rem rgba(46, 117, 182, 0.2);
    }
    .about-2 .team-list .photo img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }
    .about-2 .team-list .info h5 {
        font-size: 0.28rem;
        color: #1a1a1a;
        font-weight: 700;
        margin-bottom: 0.1rem;
    }
    .about-2 .team-list .info h5 span {
        color: #2e75b6;
        font-weight: 400;
        font-size: 0.2rem;
        margin-left: 0.08rem;
    }
    .about-2 .team-list .info p {
        font-size: 0.18rem;
        color: #666;
    }
    .about-2 .team-list .info .desc {
        font-size: 0.15rem;
        color: #888;
        line-height: 1.7;
        margin-top: 0.14rem;
        padding-top: 0.14rem;
        border-top: 1px solid #eee;
    }
    @media screen and (max-width: 800px) {
        .about-2 .wal {
            padding: 0.8rem 0;
        }
        .about-2 .team-list ul {
            -ms-grid-columns: (1fr)[1];
            grid-template-columns: repeat(1, 1fr);
            grid-gap: 0.24rem;
        }
        .about-2 .team-list .item {
            padding: 0.3rem;
        }
        .about-2 .team-list .photo {
            width: 1.1rem;
            height: 1.1rem;
            margin-right: 0.24rem;
        }
        .about-2 .team-list .info h5 {
            font-size: 0.24rem;
        }
    }

    @media screen and (min-width: 800px) {
        .about-3 .list {
            width: 6.8rem;
        }

        .news-detail .content .img .name {
            font-size: 0.16rem;
            color: #777;
        }
        .syjg .item .p-content .img .name {
            color: #777;
        }

        .syjg .item .p-content .img-list-1 ul {
            display: grid;
            -ms-grid-columns: (1fr) [3];
            grid-template-columns: repeat(3, 1fr);
            grid-gap: 0.28rem;
        }

        .technological-means .list-2 li .bd .item .img img {
            height: 3rem;
        }
        .syjg .p-content .img-list .img img {
            height: 3rem;
        }
        .news-detail .content .list-2 li .zoomImg img {
            height: 3rem;
        }
    }

/* technology.html */
/* ===== Banner ===== */
    .tech-banner {
        width: 100%;
        height: 4.2rem;
        background: center top no-repeat;
        background-size: cover;
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -webkit-align-items: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: center;
        -webkit-justify-content: center;
        -ms-flex-pack: center;
        justify-content: center;
        text-align: center;
        color: #fff;
        position: relative;
    }
    .tech-banner:before {
        content: "";
        position: absolute;
        inset: 0;
        background: rgba(0,0,0,0.35);
    }
    .tech-banner .wal {
        position: relative;
        z-index: 1;
    }
    .tech-banner h2 {
        font-size: 0.48rem;
        font-weight: 700;
        margin-bottom: 0.16rem;
    }
    .tech-banner p {
        font-size: 0.22rem;
        opacity: 0.9;
    }
    .tech-banner .banner-lead {
        max-width: 9.6rem;
        margin: 0 auto;
        font-size: 0.16rem;
        line-height: 1.8;
        opacity: 0.85;
    }
    .banner-chips {
        display: -webkit-flex;
        display: flex;
        -webkit-justify-content: center;
        justify-content: center;
        -webkit-flex-wrap: wrap;
        flex-wrap: wrap;
        gap: 0.14rem;
        margin-top: 0.34rem;
    }
    .banner-chips a {
        display: -webkit-inline-flex;
        display: inline-flex;
        -webkit-align-items: center;
        align-items: center;
        gap: 0.08rem;
        padding: 0.08rem 0.22rem;
        border-radius: 0.4rem;
        background: rgba(255,255,255,0.14);
        border: 1px solid rgba(255,255,255,0.35);
        color: #fff;
        font-size: 0.15rem;
        text-decoration: none;
        transition: background 0.2s, transform 0.15s;
    }
    .banner-chips a:hover {
        background: rgba(255,255,255,0.28);
        transform: translateY(-0.02rem);
    }
    .banner-chips a i {
        font-style: normal;
        font-weight: 700;
        color: #cfe7ff;
    }

    /* ===== 平台区块 ===== */
    .tech-section {
        background: #fff;
        /* 锚点定位时预留固定头部高度（头部高 1rem） */
        scroll-margin-top: 1rem;
    }
    .tech-section.alt {
        background: #f8fafb;
    }
    .tech-section .wal {
        padding: 1.2rem 0;
    }
    .plat-row {
        display: grid;
        grid-template-columns: 5.6rem 1fr;
        grid-gap: 0.6rem;
        align-items: center;
    }
    .plat-row.reverse {
        grid-template-columns: 1fr 5.6rem;
    }
    .plat-row.reverse .plat-info {
        grid-column: 1;
        grid-row: 1;
    }
    .plat-row.reverse .plat-visual {
        grid-column: 2;
        grid-row: 1;
    }
    .plat-visual {
        position: relative;
        overflow: hidden;
        border-radius: 0.16rem;
        background: radial-gradient(closest-side, #ffffff 0%, #eaf4fc 100%);
        border: 1px solid #e3eef7;
        min-height: 3.8rem;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 0.3rem;
    }
    .plat-visual:before {
        content: "";
        position: absolute;
        inset: 0;
        background-image:
            linear-gradient(rgba(46,117,182,0.05) 1px, transparent 1px),
            linear-gradient(90deg, rgba(46,117,182,0.05) 1px, transparent 1px);
        background-size: 0.28rem 0.28rem;
        -webkit-mask-image: radial-gradient(closest-side, #000 30%, transparent 100%);
        mask-image: radial-gradient(closest-side, #000 30%, transparent 100%);
    }
    .plat-visual .wm {
        position: absolute;
        right: 0.12rem;
        bottom: -0.1rem;
        font-size: 1.1rem;
        font-weight: 700;
        line-height: 1;
        color: rgba(46,117,182,0.07);
        user-select: none;
        pointer-events: none;
    }
    .pv {
        width: 100%;
        max-width: 4.6rem;
        height: auto;
        position: relative;
        z-index: 1;
    }
    .pv text {
        font-family: "Microsoft YaHei", "PingFang SC", sans-serif;
    }

    /* SVG 动画 */
    .pv-spin {
        animation: pvSpin 30s linear infinite;
        transform-box: view-box;
        transform-origin: 245px 150px;
    }
    .pv-spin-rev {
        animation: pvSpinRev 22s linear infinite;
        transform-box: view-box;
        transform-origin: 245px 150px;
    }
    @keyframes pvSpin { to { transform: rotate(360deg); } }
    @keyframes pvSpinRev { to { transform: rotate(-360deg); } }
    .pv-flow {
        animation: pvDash 2.6s linear infinite;
    }
    @keyframes pvDash { to { stroke-dashoffset: -88; } }
    .pv-f1 { animation: pvFloat 4.2s ease-in-out infinite; }
    .pv-f2 { animation: pvFloat 4.2s ease-in-out infinite 0.6s; }
    .pv-f3 { animation: pvFloat 4.2s ease-in-out infinite 1.1s; }
    @keyframes pvFloat {
        0%, 100% { transform: translateY(0); }
        50% { transform: translateY(-7px); }
    }
    .pv-pulse {
        animation: pvPulse 2.8s ease-in-out infinite;
        transform-box: fill-box;
        transform-origin: center;
    }
    @keyframes pvPulse {
        0%, 100% { transform: scale(1); opacity: 0.55; }
        50% { transform: scale(1.18); opacity: 0; }
    }
    .pv-node {
        animation: pvNode 3s ease-in-out infinite;
        transform-box: fill-box;
        transform-origin: center;
    }
    .pv-n2 { animation-delay: 0.5s; }
    .pv-n3 { animation-delay: 1s; }
    @keyframes pvNode {
        0%, 100% { transform: scale(1); }
        50% { transform: scale(1.22); }
    }

    /* 平台文案区 */
    .plat-tag {
        display: inline-block;
        font-size: 0.13rem;
        font-weight: 700;
        letter-spacing: 0.02rem;
        color: #2e75b6;
        background: #eef5fb;
        border: 1px solid rgba(46,117,182,0.22);
        border-radius: 0.3rem;
        padding: 0.05rem 0.18rem;
        margin-bottom: 0.2rem;
    }
    .plat-info h3 {
        font-size: 0.3rem;
        font-weight: 700;
        color: #222;
        margin-bottom: 0.06rem;
    }
    .plat-info .plat-en {
        font-size: 0.13rem;
        color: #999;
        letter-spacing: 0.01rem;
        margin-bottom: 0.2rem;
    }
    .plat-info .intro {
        font-size: 0.17rem;
        color: #555;
        line-height: 1.9;
        margin-bottom: 0.24rem;
    }
    .feat-list {
        list-style: none;
    }
    .feat-list li {
        position: relative;
        padding-left: 0.24rem;
        margin-bottom: 0.1rem;
        font-size: 0.16rem;
        color: #555;
        line-height: 1.8;
    }
    .feat-list li:before {
        content: "";
        position: absolute;
        left: 0;
        top: 0.09rem;
        width: 0.08rem;
        height: 0.08rem;
        border-radius: 0.02rem;
        background: #5aa7e8;
    }

    /* ===== 协同效应 ===== */
    .synergy-lead {
        text-align: center;
        font-size: 0.17rem;
        color: #666;
        margin: 0.24rem 0 0.5rem;
    }
    .loop-flow {
        display: grid;
        grid-template-columns: 1fr 0.4rem 1fr 0.4rem 1fr;
        align-items: stretch;
    }
    .loop-node {
        background: #fff;
        border: 1px solid #dfe9f2;
        border-radius: 0.14rem;
        padding: 0.3rem 0.2rem;
        text-align: center;
        transition: border-color 0.2s, box-shadow 0.2s;
    }
    .loop-node:hover {
        border-color: #7fb8e8;
        box-shadow: 0 0.06rem 0.18rem rgba(46,117,182,0.12);
    }
    .loop-node .step {
        width: 0.4rem;
        height: 0.4rem;
        border-radius: 0.1rem;
        background: #eaf4fc;
        color: #2e75b6;
        font-size: 0.2rem;
        font-weight: 700;
        line-height: 0.4rem;
        text-align: center;
        margin: 0 auto 0.14rem;
    }
    .loop-node h4 {
        font-size: 0.19rem;
        font-weight: 700;
        color: #222;
        margin-bottom: 0.02rem;
    }
    .loop-node .en2 {
        display: block;
        font-size: 0.11rem;
        letter-spacing: 0.01rem;
        color: #a5b3c0;
        margin-bottom: 0.12rem;
    }
    .loop-node p {
        font-size: 0.14rem;
        color: #666;
        line-height: 1.8;
    }
    .loop-arrow {
        align-self: center;
        text-align: center;
        color: #2e75b6;
        font-size: 0.22rem;
        font-weight: 700;
    }

    /* ===== CTA ===== */
    .cta-box {
        background: linear-gradient(135deg, #2e75b6, #4a9eff);
        border-radius: 0.16rem;
        padding: 0.5rem 0.4rem;
        text-align: center;
        color: #fff;
    }
    .cta-box h3 {
        font-size: 0.28rem;
        font-weight: 700;
        margin-bottom: 0.1rem;
    }
    .cta-box p {
        font-size: 0.16rem;
        opacity: 0.9;
        margin-bottom: 0.26rem;
    }
    .cta-btn {
        display: inline-block;
        background: #fff;
        color: #2e75b6;
        font-size: 0.16rem;
        font-weight: 700;
        padding: 0.12rem 0.44rem;
        border-radius: 0.4rem;
        text-decoration: none;
        transition: transform 0.15s, box-shadow 0.2s;
    }
    .cta-btn:hover {
        transform: translateY(-0.02rem);
        box-shadow: 0 0.08rem 0.2rem rgba(0,0,0,0.15);
    }

    /* ===== 滚动浮现 ===== */
    .reveal {
        opacity: 0;
        transform: translateY(0.26rem);
        transition: opacity 0.7s ease, transform 0.7s ease;
    }
    .reveal.in {
        opacity: 1;
        transform: none;
    }

    @media (prefers-reduced-motion: reduce) {
        .pv-spin, .pv-spin-rev, .pv-flow, .pv-f1, .pv-f2, .pv-f3, .pv-pulse, .pv-node { animation: none; }
        .reveal { opacity: 1; transform: none; transition: none; }
    }

    @media screen and (max-width: 800px) {
        .tech-banner {
            height: 3.4rem;
        }
        .tech-banner h2 {
        font-size: 0.25rem;
        padding: 0 0.2rem;
        font-weight: 400;
        }
        .tech-banner p {
            font-size: 0.16rem;
            padding: 0 0.2rem;
        }
        .banner-chips a {
            font-size: 0.13rem;
            padding: 0.06rem 0.16rem;
        }
        .tech-section .wal {
            padding: 0.7rem 0;
        }
        .plat-row,
        .plat-row.reverse {
            grid-template-columns: 1fr;
            grid-gap: 0.3rem;
        }
        .plat-row.reverse .plat-info,
        .plat-row.reverse .plat-visual {
            grid-column: auto;
            grid-row: auto;
        }
        .plat-visual {
            min-height: 3rem;
            padding: 0.2rem;
        }
        .pv {
            max-width: 3.4rem;
        }
        .plat-visual .wm {
            font-size: 0.84rem;
        }
        .plat-tag {
            font-size: 0.12rem;
        }
        .plat-info h3 {
            font-size: 0.24rem;
        }
        .loop-flow {
            grid-template-columns: 1fr;
        }
        .loop-arrow {
            transform: rotate(90deg);
            padding: 0.04rem 0;
        }
        .cta-box {
            padding: 0.4rem 0.24rem;
        }
        .cta-box h3 {
            font-size: 0.22rem;
        }
    }

/* core.html */
.core-banner {
        width: 100%;
        height: 4.2rem;
        background: center top no-repeat;
        background-size: cover;
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -webkit-align-items: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: center;
        -webkit-justify-content: center;
        -ms-flex-pack: center;
        justify-content: center;
        text-align: center;
        color: #fff;
        position: relative;
    }
    .core-banner:before {
        content: "";
        position: absolute;
        inset: 0;
        background: rgba(0,0,0,0.35);
    }
    .core-banner .wal {
        position: relative;
        z-index: 1;
    }
    .core-banner h2 {
        font-size: 0.48rem;
        font-weight: 700;
        margin-bottom: 0.16rem;
    }
    .core-banner p {
        font-size: 0.22rem;
        opacity: 0.9;
    }

    .core-section {
        background: #fff;
    }
    .core-section.alt {
        background: #f8fafb;
    }
    .core-section .wal {
        padding: 1.4rem 0;
    }
    .core-grid {
        display: -ms-grid;
        display: grid;
        -ms-grid-columns: (1fr)[2];
        grid-template-columns: repeat(2, 1fr);
        grid-gap: 0.3rem;
        margin-top: 0.6rem;
    }
    .core-card {
        background: #fff;
        border-radius: 0.1rem;
        overflow: hidden;
        box-shadow: 0 0.02rem 0.12rem rgba(0,0,0,0.06);
    }
    .core-card .hd {
        background: center no-repeat;
        background-size: cover;
        height: 1.4rem;
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-flex-direction: column;
        -ms-flex-direction: column;
        flex-direction: column;
        -webkit-box-pack: center;
        -webkit-justify-content: center;
        -ms-flex-pack: center;
        justify-content: center;
        color: #fff;
        border-radius: 0.1rem 0.1rem 0 0;
        padding-left: 0.4rem;
        position: relative;
    }
    .core-card .hd:before {
        content: "";
        position: absolute;
        inset: 0;
        background: rgba(0,0,0,0.3);
        border-radius: 0.1rem 0.1rem 0 0;
    }
    .core-card .hd h5 {
        position: relative;
        z-index: 1;
        font-size: 0.28rem;
        line-height: 0.46rem;
    }
    .core-card .bd {
        border-radius: 0 0 0.1rem 0.1rem;
        border: rgba(0,0,0,.15) solid 1px;
        border-top: none;
        min-height: 1.8rem;
        padding: 0.24rem 0.4rem;
    }
    .core-card .bd dd {
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -webkit-align-items: center;
        -ms-flex-align: center;
        align-items: center;
        min-height: 0.5rem;
        font-size: 0.18rem;
        color: #4d4d4d;
        line-height: 1.6;
    }
    .core-card .bd dd:before {
        content: "";
        -webkit-flex-shrink: 0;
        -ms-flex-negative: 0;
        flex-shrink: 0;
        margin-right: 0.1rem;
        width: 0.06rem;
        height: 0.06rem;
        background: #2e75b6;
        border-radius: 50%;
    }
    .core-imgs {
        display: -ms-grid;
        display: grid;
        -ms-grid-columns: (1fr)[2];
        grid-template-columns: repeat(2, 1fr);
        grid-gap: 0.3rem;
        margin-top: 0.4rem;
    }
    .img-card {
        background: #fff;
        border-radius: 0.1rem;
        border: 1px dashed rgba(0,0,0,0.15);
        min-height: 2.4rem;
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -webkit-align-items: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: center;
        -webkit-justify-content: center;
        -ms-flex-pack: center;
        justify-content: center;
    }
    .img-card.full {
        -ms-grid-column: 1;
        -ms-grid-column-span: 2;
        grid-column: 1 / -1;
    }
    .img-placeholder {
        font-size: 0.18rem;
        color: #aaa;
    }

    @media screen and (max-width: 800px) {
        .core-banner {
            height: 2.8rem;
        }
        .core-banner h2 {
            font-size: 0.32rem;
        }
        .core-banner p {
            font-size: 0.16rem;
        }
        .core-section .wal {
            padding: 0.8rem 0;
        }
        .core-grid {
            -ms-grid-columns: (1fr)[1];
            grid-template-columns: repeat(1, 1fr);
        }
        .core-imgs {
            -ms-grid-columns: (1fr)[1];
            grid-template-columns: repeat(1, 1fr);
        }
        .img-card.full {
            grid-column: 1;
        }
    }

/* pipeline.html */
/* ===== Banner ===== */
    .pipeline-banner {
        width: 100%;
        height: 4.2rem;
        background: url('../img/ban1.jpg') center top no-repeat;
        background-size: cover;
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center;
        color: #fff;
        position: relative;
    }
    .pipeline-banner:before {
        content: "";
        position: absolute;
        inset: 0;
        background: rgba(0,0,0,0.35);
    }
    .pipeline-banner .wal {
        position: relative;
        z-index: 1;
    }
    .pipeline-banner h1 {
        font-size: 0.48rem;
        font-weight: 700;
        margin-bottom: 0.16rem;
    }
    .pipeline-banner .banner-lead {
        max-width: 9.6rem;
        margin: 0 auto;
        font-size: 0.16rem;
        line-height: 1.8;
        opacity: 0.85;
    }

    /* ===== 区块通用 ===== */
    .pipeline-section {
        background: #fff;
    }
    .pipeline-section.alt {
        background: #f8fafb;
    }
    .pipeline-section .wal {
        padding: 1.2rem 0;
    }
    .pipeline-section .index-title {
        margin-bottom: 0;
    }
    .sec-lead {
        text-align: center;
        font-size: 0.17rem;
        color: #666;
        margin: 0.24rem 0 0.5rem;
    }

    /* ===== 管线总览（卡片式阶段节点） ===== */
    .overview table {
        table-layout: fixed;
    }
    .overview .node-card {
        position: relative;
        z-index: 1;
        margin: 0 auto;
        width: 92%;
        max-width: 1.7rem;
        background: #f2f8fd;
        border: 2px solid #c9def0;
        border-radius: 0.1rem;
        padding: 0.12rem 0.06rem 0.14rem;
        text-align: center;
        opacity: 0;
        transform: translateY(0.14rem) scale(0.85);
        transition: opacity 0.55s ease, transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .overview .node-card b {
        display: block;
        font-size: 0.17rem;
        font-weight: 700;
        color: #2e75b6;
        line-height: 1.3;
    }
    .overview .node-card span {
        display: block;
        font-size: 0.13rem;
        color: #666;
        margin-top: 0.04rem;
        white-space: nowrap;
    }
    .overview .node-card em {
        display: block;
        font-style: normal;
        font-size: 0.12rem;
        font-weight: 600;
        color: #9aa7b1;
        margin-top: 0.06rem;
    }
    .overview .node-card.cur {
        background: #eaf4fc;
        border-color: #5aa7e8;
    }
    .overview .node-card.cur em {
        color: #5aa7e8;
    }
    .overview.inview .node-card {
        opacity: 1;
        transform: none;
    }
    /* 卡片/圆点/轨道按阶段列从左到右依次加载 */
    .overview.inview tbody td.stage:nth-child(2) .node-card,
    .overview.inview tbody td.stage:nth-child(2) i,
    .overview.inview tbody td.stage.current:nth-child(2)::before {
        transition-delay: 0.1s;
    }
    .overview.inview tbody td.stage:nth-child(3) .node-card,
    .overview.inview tbody td.stage:nth-child(3) i,
    .overview.inview tbody td.stage.current:nth-child(3)::before {
        transition-delay: 0.35s;
    }
    .overview.inview tbody td.stage:nth-child(4) .node-card,
    .overview.inview tbody td.stage:nth-child(4) i,
    .overview.inview tbody td.stage.current:nth-child(4)::before {
        transition-delay: 0.6s;
    }
    .overview.inview tbody td.stage:nth-child(5) .node-card,
    .overview.inview tbody td.stage:nth-child(5) i,
    .overview.inview tbody td.stage.current:nth-child(5)::before {
        transition-delay: 0.85s;
    }
    .overview .pl-foot {
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.3rem;
        margin-top: 0.24rem;
        font-size: 0.14rem;
        color: #666;
    }
    .overview .pl-foot .lg {
        display: inline-flex;
        align-items: center;
        gap: 0.08rem;
    }
    .overview .pl-foot .sw {
        display: inline-block;
        width: 14px;
        height: 10px;
        border-radius: 3px;
        background: #f2f8fd;
        border: 2px solid #c9def0;
    }
    .overview .pl-foot .sw-pre {
        background: #eaf4fc;
        border-color: #5aa7e8;
    }
    .overview .pl-foot .more {
        color: #9aa7b1;
    }

    /* ===== 详情表 ===== */
    .table-card {
        background: #fff;
        border: 1px solid #e3eef7;
        border-radius: 0.16rem;
        box-shadow: 0 0.02rem 0.12rem rgba(46,117,182,0.06);
        overflow: hidden;
        overflow-x: auto;
    }
    .pl-table {
        width: 100%;
        border-collapse: collapse;
        min-width: 7.6rem;
    }
    .pl-table th {
        text-align: left;
        font-size: 0.14rem;
        font-weight: 700;
        color: #8ba0b3;
        letter-spacing: 0.01rem;
        padding: 0.18rem 0.2rem;
        background: #f8fbfe;
        border-bottom: 2px solid #e3ecf4;
        white-space: nowrap;
    }
    .pl-table td {
        padding: 0.18rem 0.2rem;
        border-bottom: 1px solid #eef4f9;
        font-size: 0.15rem;
        color: #444;
    }
    .pl-table tbody tr:last-child td {
        border-bottom: none;
    }
    .pl-table tbody tr:hover td {
        background: #f6fafe;
    }
    .pl-table td.code {
        font-weight: 700;
        color: #2e75b6;
        white-space: nowrap;
    }
    .badge {
        display: inline-block;
        font-size: 0.12rem;
        font-weight: 600;
        padding: 0.04rem 0.16rem;
        border-radius: 0.3rem;
        white-space: nowrap;
    }
    .badge-pre {
        background: #fff3e0;
        color: #b57400;
    }
    .badge-discovery {
        background: #ede7f6;
        color: #5e35b1;
    }

    /* ===== 管线亮点 ===== */
    .hl-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 0.24rem;
    }
    .hl-card {
        background: #fff;
        border: 1px solid #e3eef7;
        border-radius: 0.14rem;
        padding: 0.36rem 0.3rem;
        position: relative;
        overflow: hidden;
        transition: box-shadow 0.3s, transform 0.3s;
    }
    .hl-card:before {
        content: "";
        position: absolute;
        left: 0;
        bottom: 0;
        width: 100%;
        height: 0.04rem;
        background: linear-gradient(90deg, #2e75b6, #65d5a9);
        border-radius: 0 0 0.14rem 0.14rem;
    }
    .hl-card:hover {
        box-shadow: 0 0.06rem 0.2rem rgba(46,117,182,0.12);
        transform: translateY(-0.03rem);
    }
    .hl-card .ico {
        width: 0.44rem;
        height: 0.44rem;
        border-radius: 0.12rem;
        background: #eaf4fc;
        color: #2e75b6;
        font-size: 0.22rem;
        line-height: 0.44rem;
        text-align: center;
        margin-bottom: 0.16rem;
    }
    .hl-card h4 {
        font-size: 0.19rem;
        font-weight: 700;
        color: #222;
        line-height: 1.5;
    }
    .hl-card h4 small {
        display: block;
        font-size: 0.12rem;
        font-weight: 400;
        color: #9aa7b1;
        letter-spacing: 0.01rem;
        margin-top: 0.04rem;
    }
    .hl-card p {
        font-size: 0.15rem;
        color: #666;
        line-height: 1.9;
        margin-top: 0.12rem;
    }
    .kw {
        color: #2e75b6;
        font-weight: 700;
    }

    /* ===== CTA ===== */
    .cta-box {
        background: linear-gradient(135deg, #2e75b6, #4a9eff);
        border-radius: 0.16rem;
        padding: 0.5rem 0.4rem;
        text-align: center;
        color: #fff;
    }
    .cta-box h3 {
        font-size: 0.28rem;
        font-weight: 700;
        margin-bottom: 0.1rem;
    }
    .cta-box p {
        font-size: 0.16rem;
        opacity: 0.9;
        margin-bottom: 0.26rem;
    }
    .cta-btn {
        display: inline-block;
        background: #fff;
        color: #2e75b6;
        font-size: 0.16rem;
        font-weight: 700;
        padding: 0.12rem 0.44rem;
        border-radius: 0.4rem;
        text-decoration: none;
        transition: transform 0.15s, box-shadow 0.2s;
    }
    .cta-btn:hover {
        transform: translateY(-0.02rem);
        box-shadow: 0 0.08rem 0.2rem rgba(0,0,0,0.15);
    }

    /* ===== 滚动浮现 ===== */
    .reveal {
        opacity: 0;
        transform: translateY(0.26rem);
        transition: opacity 0.7s ease, transform 0.7s ease;
    }
    .reveal.in {
        opacity: 1;
        transform: none;
    }
    @media (prefers-reduced-motion: reduce) {
        .reveal { opacity: 1; transform: none; transition: none; }
        .overview .node-card { opacity: 1; transform: none; transition: none; }
    }

    @media screen and (max-width: 800px) {
        .pipeline-banner {
            height: 3.2rem;
        }
        .pipeline-banner h1 {
            font-size: 0.32rem;
        }
        .pipeline-banner .banner-lead {
            font-size: 0.14rem;
            padding: 0 0.2rem;
        }
        .pipeline-section .wal {
            padding: 0.7rem 0;
        }
        .sec-lead {
            font-size: 0.15rem;
            margin: 0.16rem 0 0.3rem;
        }
        .overview .pl-foot {
            gap: 0.16rem;
        }
        .overview .node-card span {
            font-size: 0.12rem;
        }
        .hl-grid {
            grid-template-columns: 1fr;
            gap: 0.2rem;
        }
        .cta-box {
            padding: 0.4rem 0.24rem;
        }
        .cta-box h3 {
            font-size: 0.22rem;
        }
    }

/* news.html */
.news-banner {
        width: 100%;
        height: 4.2rem;
        background: center top no-repeat;
        background-size: cover;
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -webkit-align-items: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: center;
        -webkit-justify-content: center;
        -ms-flex-pack: center;
        justify-content: center;
        text-align: center;
        color: #fff;
        position: relative;
    }
    .news-banner:before {
        content: "";
        position: absolute;
        inset: 0;
        background: rgba(0,0,0,0.35);
    }
    .news-banner .wal {
        position: relative;
        z-index: 1;
    }
    .news-banner h1 {
        font-size: 0.48rem;
        font-weight: 700;
        margin-bottom: 0.16rem;
    }
    .news-banner p {
        font-size: 0.22rem;
        opacity: 0.9;
    }

    .news-page {
        background: #fff;
    }
    .news-page .wal {
        padding: 0.8rem 0 1.4rem;
    }

    /* Tabs */
    .news-tabs {
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        gap: 0.16rem;
        margin-bottom: 0.5rem;
        padding-bottom: 0.3rem;
        border-bottom: 1px solid #eee;
    }
    .news-tabs .tab {
        padding: 0.12rem 0.3rem;
        border-radius: 0.06rem;
        font-size: 0.17rem;
        color: #555;
        background: #f5f5f7;
        transition: all 0.25s;
    }
    .news-tabs .tab:hover {
        color: #2e75b6;
        background: rgba(46,117,182,0.08);
    }
    .news-tabs .tab.on {
        background: #2e75b6;
        color: #fff;
    }

    /* News List */
    .news-list {
        display: -ms-grid;
        display: grid;
        -ms-grid-columns: (1fr)[2];
        grid-template-columns: repeat(2, 1fr);
        grid-gap: 0.3rem;
    }
    .news-item a {
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -webkit-align-items: center;
        -ms-flex-align: center;
        align-items: center;
        background: #fff;
        box-shadow: 0 0 0.09rem rgba(0,0,0,.1);
        border-radius: 0.1rem;
        overflow: hidden;
        height: 2.8rem;
        transition: box-shadow 0.3s, transform 0.3s;
    }
    .news-item a:hover {
        box-shadow: 0 0.06rem 0.2rem rgba(0,0,0,0.13);
        transform: translateY(-0.03rem);
    }
    .news-item .zoomImg {
        /* 缩略图比例 300:213：卡片高 2.8rem，宽 = 2.8 × 300 / 213 ≈ 3.944rem */
        width: 3.944rem;
        -webkit-flex-shrink: 0;
        -ms-flex-negative: 0;
        flex-shrink: 0;
        height: 100%;
        overflow: hidden;
    }
    .news-item .zoomImg img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
        transition: transform 0.4s;
    }
    .news-item a:hover .zoomImg img {
        transform: scale(1.05);
    }
    .news-item .bd {
        padding: 0.28rem 0.36rem;
        position: relative;
        overflow: hidden;
        -webkit-flex: 1;
        -ms-flex: 1;
        flex: 1;
    }
    .news-item .time {
        font-size: 0.14rem;
        color: #999;
        margin-bottom: 0.1rem;
    }
    .news-item h5 {
        font-size: 0.2rem;
        font-weight: 600;
        color: #212121;
        margin-bottom: 0.1rem;
        line-height: 1.4;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    .news-item p {
        font-size: 0.14rem;
        color: #777;
        line-height: 1.6;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    .news-item .cat-tag {
        display: inline-block;
        font-size: 0.12rem;
        color: #2e75b6;
        background: rgba(46,117,182,0.07);
        padding: 0.04rem 0.12rem;
        border-radius: 0.03rem;
        margin-top: 0.12rem;
    }

    @media screen and (max-width: 800px) {
        .news-banner {
            height: 2.8rem;
        }
        .news-banner h1 {
            font-size: 0.32rem;
        }
        .news-banner p {
            font-size: 0.16rem;
        }
        .news-page .wal {
            padding: 0.5rem 0 0.8rem;
        }
        .news-list {
            -ms-grid-columns: (1fr)[1];
            grid-template-columns: repeat(1, 1fr);
        }
        .news-item a {
            height: auto;
            -webkit-box-orient: vertical;
            -webkit-flex-direction: column;
            -ms-flex-direction: column;
            flex-direction: column;
            -webkit-box-align: stretch;
            -webkit-align-items: stretch;
            -ms-flex-align: stretch;
            align-items: stretch;
        }
        .news-item .zoomImg {
            width: 100%;
            height: auto;
            /* 移动端按 300:213 比例自适应 */
            aspect-ratio: 300 / 213;
        }
    }

/* news-detail.html */
.detail-banner {
        width: 100%;
        height: 3.6rem;
        background: center top no-repeat;
        background-size: cover;
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -webkit-align-items: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: center;
        -webkit-justify-content: center;
        -ms-flex-pack: center;
        justify-content: center;
        text-align: center;
        color: #fff;
        position: relative;
    }
    .detail-banner:before {
        content: "";
        position: absolute;
        inset: 0;
        background: rgba(0,0,0,0.35);
    }
    .detail-banner .wal {
        position: relative;
        z-index: 1;
    }
    .detail-banner h1 {
        font-size: 0.42rem;
        font-weight: 700;
    }

    .detail-page {
        background: #fff;
    }
    .detail-page .wal {
        padding: 0.8rem 0 1.4rem;
    }
    .detail-content {
        font-size: 0.18rem;
        color: #333;
        line-height: 2;
    }
    .detail-title {
        font-size: 0.36rem;
        font-weight: 700;
        color: #1a1a1a;
        line-height: 1.4;
        margin-bottom: 0.16rem;
        text-align: center;
    }
    .detail-meta {
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
        -webkit-justify-content: center;
        -ms-flex-pack: center;
        justify-content: center;
        -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        gap: 0.3rem;
        font-size: 0.14rem;
        color: #999;
        margin-bottom: 0.5rem;
        padding-bottom: 0.3rem;
        border-bottom: 1px solid #eee;
    }
    .detail-meta .meta-item {
        display: -webkit-inline-box;
        display: -webkit-inline-flex;
        display: -ms-inline-flexbox;
        display: inline-flex;
        -webkit-box-align: center;
        -webkit-align-items: center;
        -ms-flex-align: center;
        align-items: center;
        gap: 0.06rem;
    }
    .detail-content p {
        margin-bottom: 0.3rem;
        text-indent: 2em;
    }
    .detail-content strong {
        color: #1a1a1a;
    }
    .detail-pager {
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: justify;
        -webkit-justify-content: space-between;
        -ms-flex-pack: justify;
        justify-content: space-between;
        gap: 0.3rem;
        margin-top: 0.8rem;
        padding-top: 0.4rem;
        border-top: 1px solid #eee;
    }
    .detail-pager a,
    .detail-pager .disabled {
        -webkit-flex: 1;
        -ms-flex: 1;
        flex: 1;
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-flex-direction: column;
        -ms-flex-direction: column;
        flex-direction: column;
        gap: 0.06rem;
        padding: 0.24rem 0.3rem;
        background: #f8fafb;
        border-radius: 0.08rem;
        -webkit-transition: background 0.25s, box-shadow 0.25s;
        transition: background 0.25s, box-shadow 0.25s;
    }
    .detail-pager .next {
        text-align: right;
    }
    .detail-pager a:hover {
        background: #eef5fb;
        box-shadow: 0 0.04rem 0.14rem rgba(0,0,0,0.08);
    }
    .detail-pager span {
        font-size: 0.13rem;
        color: #2e75b6;
        font-weight: 600;
    }
    .detail-pager em {
        font-style: normal;
        font-size: 0.15rem;
        color: #555;
        line-height: 1.5;
        display: -webkit-box;
        -webkit-line-clamp: 1;
        line-clamp: 1;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    .detail-pager .disabled {
        opacity: 0.45;
        cursor: default;
    }

    .detail-back {
        margin-top: 0.6rem;
        padding-top: 0.4rem;
        border-top: 1px solid #eee;
        text-align: center;
    }

    @media screen and (max-width: 800px) {
        .detail-banner {
            height: 2.4rem;
        }
        .detail-banner h1 {
            font-size: 0.28rem;
        }
        .detail-page .wal {
            padding: 0.5rem 0 0.8rem;
        }
        .detail-content {
            font-size: 0.16rem;
        }
    }

/* contact.html */
.contact-banner {
        width: 100%;
        height: 4.2rem;
        background: center top no-repeat;
        background-size: cover;
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -webkit-align-items: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: center;
        -webkit-justify-content: center;
        -ms-flex-pack: center;
        justify-content: center;
        text-align: center;
        color: #fff;
        position: relative;
    }
    .contact-banner:before {
        content: "";
        position: absolute;
        inset: 0;
        background: rgba(0,0,0,0.35);
    }
    .contact-banner .wal {
        position: relative;
        z-index: 1;
    }
    .contact-banner h1 {
        font-size: 0.48rem;
        font-weight: 700;
        margin-bottom: 0.16rem;
    }
    .contact-banner p {
        font-size: 0.22rem;
        opacity: 0.9;
    }

    .contact-page {
        background: #fff;
    }
    .contact-page .wal {
        padding: 1.4rem 0;
    }
    .contact-grid {
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        gap: 0.4rem;
    }
    .contact-info {
        display: -ms-grid;
        display: grid;
        -ms-grid-columns: (1fr)[2];
        grid-template-columns: repeat(2, 1fr);
        grid-gap: 0.24rem;
        -webkit-flex: 1;
        -ms-flex: 1;
        flex: 1;
    }
    .info-card {
        background: #fff;
        border-radius: 0.1rem;
        padding: 0.36rem;
        box-shadow: 0 0.02rem 0.12rem rgba(0,0,0,0.06);
        position: relative;
        overflow: hidden;
    }
    .info-card:before {
        content: "";
        display: block;
        position: absolute;
        left: 0;
        bottom: 0;
        width: 100%;
        height: 0.04rem;
        background: linear-gradient(90deg, #2e75b6, #65d5a9);
        border-radius: 0 0 0.1rem 0.1rem;
    }
    .info-card .ico {
        width: 0.56rem;
        height: 0.56rem;
        border-radius: 0.1rem;
        background: rgba(46,117,182,0.08);
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -webkit-align-items: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: center;
        -webkit-justify-content: center;
        -ms-flex-pack: center;
        justify-content: center;
        margin-bottom: 0.18rem;
    }
    .info-card h5 {
        font-size: 0.2rem;
        font-weight: 700;
        color: #1a1a1a;
        margin-bottom: 0.08rem;
    }
    .info-card p {
        font-size: 0.16rem;
        color: #666;
        line-height: 1.6;
    }

    .contact-qr {
        -webkit-flex-shrink: 0;
        -ms-flex-negative: 0;
        flex-shrink: 0;
        width: 2.8rem;
    }
    .qr-card {
        background: #fff;
        border-radius: 0.1rem;
        padding: 0.4rem 0.3rem;
        text-align: center;
        box-shadow: 0 0.02rem 0.12rem rgba(0,0,0,0.06);
        position: relative;
        overflow: hidden;
    }
    .qr-card:before {
        content: "";
        display: block;
        position: absolute;
        left: 0;
        bottom: 0;
        width: 100%;
        height: 0.04rem;
        background: linear-gradient(90deg, #2e75b6, #65d5a9);
        border-radius: 0 0 0.1rem 0.1rem;
    }
    .qr-img {
        width: 1.8rem;
        height: 1.8rem;
        margin: 0 auto 0.2rem;
        border-radius: 0.08rem;
        overflow: hidden;
        border: 1px solid #f0f0f0;
    }
    .qr-img img {
        width: 100%;
        height: 100%;
        object-fit: contain;
        display: block;
    }
    .qr-card h5 {
        font-size: 0.18rem;
        font-weight: 700;
        color: #1a1a1a;
        margin-bottom: 0.06rem;
    }
    .qr-card p {
        font-size: 0.14rem;
        color: #999;
    }

    /* Form */
    .contact-form {
        margin-top: 0.8rem;
        padding-top: 0.8rem;
        border-top: 1px solid #eee;
    }
    .contact-form .page-title h2 {
        font-size: 0.32rem;
        text-align: center;
        margin-bottom: 0.5rem;
    }
    .form-row {
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        gap: 0.24rem;
        margin-bottom: 0.24rem;
    }
    .form-group {
        -webkit-flex: 1;
        -ms-flex: 1;
        flex: 1;
    }
    .form-group input,
    .form-group textarea {
        width: 100%;
        padding: 0.18rem 0.24rem;
        border: 1px solid #ddd;
        border-radius: 0.08rem;
        font-size: 0.16rem;
        color: #333;
        background: #fafbfc;
        outline: none;
        transition: border-color 0.3s, box-shadow 0.3s;
        font-family: inherit;
        box-sizing: border-box;
    }
    .form-group input:focus,
    .form-group textarea:focus {
        border-color: #2e75b6;
        box-shadow: 0 0 0 0.04rem rgba(46,117,182,0.1);
        background: #fff;
    }
    .form-group textarea {
        resize: vertical;
    }
    .form-group.full {
        -webkit-flex: 1 1 100%;
        -ms-flex: 1 1 100%;
        flex: 1 1 100%;
    }
    .form-submit {
        text-align: center;
        margin-top: 0.16rem;
    }
    .form-submit button {
        padding: 0.18rem 1rem;
        background: linear-gradient(135deg, #2e75b6, #1a5a8e);
        color: #fff;
        border: none;
        border-radius: 0.08rem;
        font-size: 0.18rem;
        cursor: pointer;
        transition: opacity 0.3s, transform 0.2s;
    }
    .form-submit button:hover {
        opacity: 0.9;
        transform: translateY(-2px);
    }

    .form-code-row {
        -webkit-box-align: stretch;
        -webkit-align-items: stretch;
        -ms-flex-align: stretch;
        align-items: stretch;
    }
    .form-code-row .code-img {
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -webkit-align-items: center;
        -ms-flex-align: center;
        align-items: center;
    }
    .form-code-row .code-img img {
        height: 0.56rem;
        border-radius: 0.08rem;
        cursor: pointer;
    }

    @media screen and (max-width: 800px) {
        .contact-banner {
            height: 2.8rem;
        }
        .contact-banner h1 {
            font-size: 0.32rem;
        }
        .contact-banner p {
            font-size: 0.16rem;
        }
        .contact-page .wal {
            padding: 0.8rem 0;
        }
        .contact-grid {
            -webkit-box-orient: vertical;
            -webkit-flex-direction: column;
            -ms-flex-direction: column;
            flex-direction: column;
        }
        .contact-info {
            -ms-grid-columns: (1fr)[1];
            grid-template-columns: repeat(1, 1fr);
        }
        .contact-qr {
            width: 100%;
        }
    }

/* join.html */
.join-banner {
        width: 100%;
        height: 4.2rem;
        background: center top no-repeat;
        background-size: cover;
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -webkit-align-items: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: center;
        -webkit-justify-content: center;
        -ms-flex-pack: center;
        justify-content: center;
        text-align: center;
        color: #fff;
        position: relative;
    }
    .join-banner:before {
        content: "";
        position: absolute;
        inset: 0;
        background: rgba(0,0,0,0.35);
    }
    .join-banner .wal {
        position: relative;
        z-index: 1;
    }
    .join-banner h1 {
        font-size: 0.48rem;
        font-weight: 700;
        margin-bottom: 0.16rem;
    }
    .join-banner p {
        font-size: 0.22rem;
        opacity: 0.9;
    }

    .join-page {
        background: #f8fafb;
    }
    .join-page .wal {
        padding: 1rem 0 1.4rem;
    }

    .join-intro {
        text-align: center;
        margin-bottom: 0.6rem;
    }
    .join-intro h2 {
        font-size: 0.32rem;
        font-weight: 700;
        color: #1a1a1a;
        margin-bottom: 0.14rem;
    }
    .join-intro p {
        font-size: 0.16rem;
        color: #888;
    }

    .job-list {
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-flex-direction: column;
        -ms-flex-direction: column;
        flex-direction: column;
        gap: 0.3rem;
    }

    .job-item {
        background: #fff;
        border-radius: 0.1rem;
        box-shadow: 0 0.02rem 0.12rem rgba(0,0,0,0.06);
        overflow: hidden;
        position: relative;
    }
    .job-item:before {
        content: "";
        position: absolute;
        left: 0;
        bottom: 0;
        width: 100%;
        height: 0.04rem;
        background: linear-gradient(90deg, #2e75b6, #65d5a9);
        z-index: 1;
    }

    .job-head {
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -webkit-align-items: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: justify;
        -webkit-justify-content: space-between;
        -ms-flex-pack: justify;
        justify-content: space-between;
        padding: 0.36rem 0.4rem;
        cursor: pointer;
        -webkit-user-select: none;
        -ms-user-select: none;
        user-select: none;
        transition: background 0.25s;
    }
    .job-head:hover {
        background: #fafcfe;
    }

    .job-title h3 {
        font-size: 0.24rem;
        font-weight: 700;
        color: #1a1a1a;
        margin-bottom: 0.14rem;
    }
    .job-tags {
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        gap: 0.12rem;
    }
    .job-tags span {
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -webkit-align-items: center;
        -ms-flex-align: center;
        align-items: center;
        gap: 0.05rem;
        font-size: 0.14rem;
        color: #666;
        background: #f5f7fa;
        padding: 0.06rem 0.14rem;
        border-radius: 0.04rem;
    }
    .job-tags span svg {
        -webkit-flex-shrink: 0;
        -ms-flex-negative: 0;
        flex-shrink: 0;
    }

    .job-toggle {
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -webkit-align-items: center;
        -ms-flex-align: center;
        align-items: center;
        gap: 0.08rem;
        -webkit-flex-shrink: 0;
        -ms-flex-negative: 0;
        flex-shrink: 0;
        margin-left: 0.3rem;
    }
    .job-toggle em {
        font-size: 0.14rem;
        color: #2e75b6;
        font-style: normal;
    }
    .job-toggle i {
        display: block;
        width: 0.1rem;
        height: 0.1rem;
        border-right: 2px solid #2e75b6;
        border-bottom: 2px solid #2e75b6;
        -webkit-transform: rotate(45deg);
        -ms-transform: rotate(45deg);
        transform: rotate(45deg);
        transition: transform 0.3s;
        margin-top: -0.04rem;
    }
    .job-item.open .job-toggle i {
        -webkit-transform: rotate(-135deg);
        -ms-transform: rotate(-135deg);
        transform: rotate(-135deg);
        margin-top: 0.04rem;
    }

    .job-body {
        display: none;
        border-top: 1px solid #f0f0f0;
        padding: 0.32rem 0.4rem 0.4rem;
    }
    .job-section {
        margin-bottom: 0.3rem;
    }
    .job-section:last-of-type {
        margin-bottom: 0.32rem;
    }
    .job-section h4 {
        font-size: 0.17rem;
        font-weight: 700;
        color: #2e75b6;
        margin-bottom: 0.14rem;
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -webkit-align-items: center;
        -ms-flex-align: center;
        align-items: center;
        gap: 0.1rem;
    }
    .job-section h4:before {
        content: "";
        display: inline-block;
        width: 0.06rem;
        height: 0.06rem;
        background: #2e75b6;
        border-radius: 50%;
        -webkit-flex-shrink: 0;
        -ms-flex-negative: 0;
        flex-shrink: 0;
    }
    .job-section ul {
        padding-left: 0.16rem;
    }
    .job-section ul li {
        font-size: 0.16rem;
        color: #555;
        line-height: 1.9;
        position: relative;
        padding-left: 0.16rem;
    }
    .job-section ul li:before {
        content: "";
        position: absolute;
        left: 0;
        top: 0.18rem;
        width: 0.05rem;
        height: 0.05rem;
        background: #65d5a9;
        border-radius: 50%;
    }

    .job-apply {
        text-align: center;
        padding-top: 0.06rem;
    }
    .job-apply a {
        display: inline-block;
        padding: 0.14rem 0.8rem;
        background: linear-gradient(135deg, #2e75b6, #1a5a8e);
        color: #fff;
        border-radius: 0.08rem;
        font-size: 0.17rem;
        transition: opacity 0.3s, transform 0.2s;
    }
    .job-apply a:hover {
        opacity: 0.9;
        transform: translateY(-2px);
        color: #fff;
    }

    @media screen and (max-width: 800px) {
        .join-banner {
            height: 2.8rem;
        }
        .join-banner h1 {
            font-size: 0.32rem;
        }
        .join-banner p {
            font-size: 0.16rem;
        }
        .join-page .wal {
            padding: 0.6rem 0 0.8rem;
        }
        .join-intro h2 {
            font-size: 0.26rem;
        }
        .job-head {
            padding: 0.28rem 0.24rem;
        }
        .job-title h3 {
            font-size: 0.2rem;
        }
        .job-toggle em {
            display: none;
        }
        .job-body {
            padding: 0.28rem 0.24rem 0.32rem;
        }
    }

