/* ==========================================================================
   nova · 白板主题基础样式
   仅保留最小重置与骨架（导航/页脚/容器），页面内容按设计稿逐步实现。
   ========================================================================== */
*{margin:0;padding:0;box-sizing:border-box}
body{font:14px/1.7 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#222;background:#fff;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit;color:inherit}
.container{max-width:1200px;margin:0 auto;padding:0 20px}
.nv-main{min-height:60vh}

/* 顶部导航（骨架） */
.nv-nav{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid #eaeaea}
.nv-nav-inner{display:flex;align-items:center;gap:26px;height:60px}
.nv-brand{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:700}
.nv-menu{display:flex;align-items:center;gap:20px;font-size:14px;color:#444}
.nv-menu a:hover,.nv-right a:hover{color:#006eff}
.nv-right{margin-left:auto;display:flex;align-items:center;gap:16px;font-size:14px;color:#444}

/* 白板占位 */
.nv-blank{padding:90px 20px;text-align:left}
.nv-blank h1{font-size:22px;font-weight:600}
.nv-blank p{margin-top:10px;color:#999}

/* 页脚（骨架） */
.nv-footer{border-top:1px solid #eaeaea;padding:26px 0;color:#999;font-size:12.5px}

/* 手机端底部导航 */
.nv-bottom{display:none}
@media(max-width:680px){
  .nv-menu{display:none}
  .nv-bottom{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;background:#fff;border-top:1px solid #eaeaea}
  .nv-bottom a{flex:1;text-align:center;padding:11px 0;font-size:12px;color:#666}
  body{padding-bottom:44px}
}

/* 首页专用：导航浮在 Hero 之上（透明），滚动后再变白吸顶 —— 与参考站一致（hero 从 y=0 开始） */
.nv-nav--trans{position:absolute;left:0;right:0;top:0;background:transparent;border-bottom-color:transparent;transition:background .25s ease,border-color .25s ease,box-shadow .25s ease}
.nv-nav--trans.nv-nav--solid{position:fixed;background:#fff;border-bottom-color:#eaeaea;box-shadow:0 2px 10px rgba(0,0,0,.06)}

/* ===== 以下规则照抄自腾讯云首页原始样式（Main-202608171547.css），见 新主题/参考/_ref_hero.css ===== */
/* ======== 来自 Main-202608171547.css （105 条规则）======== */
.tpm-portal-hero__ctrls-wrap{-ms-flex-negative:0;flex-shrink:0;width:220px;display:-ms-flexbox;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%;position:absolute;z-index:2;left:48px;top:0;padding-top:56px;display:flex;-ms-flex-align:center;align-items:center}
.tpm-portal-hero__ctrls{width:100%;position:relative;border-right:2px solid #fff}
.tpm-portal-hero__ctrl{position:relative;cursor:pointer;width:100%;padding:14px 12px 14px 0;text-align:right}
.tpm-portal-hero__ctrl+.tpm-portal-hero__ctrl{margin-top:12px}
.tpm-portal-hero__ctrl-inner{max-width:100%;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end}
.tpm-portal-hero__ctrl-text{-ms-flex-positive:1;flex-grow:1;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;color:#181818;font-size:14px;line-height:22px;white-space:nowrap;word-break:keep-all;overflow:hidden;text-overflow:ellipsis;transition:all .3s ease-in-out}
.tpm-portal-hero__ctrl.active .tpm-portal-hero__ctrl-text{color:#0f62ea}
@media screen and (min-width:769px){.tpm-portal-hero__ctrl:hover .tpm-portal-hero__ctrl-text{color:#0f62ea}}
.tpm-portal-hero__ctrl-icon{-ms-flex-negative:0;flex-shrink:0;margin-right:8px;height:20px}
.tpm-portal-hero__ctrl-tag{-ms-flex-negative:0;flex-shrink:0;margin-right:8px;padding:0 6px;font-size:12px;line-height:18px;color:#fff;border-radius:2px;background:linear-gradient(90deg,#08f -4.72%,#409cff 48.25%,#217dfd 103.3%)}
.tpm-portal-hero__ctrl-mask{position:absolute;left:0;top:0;width:calc(100% + 2px);height:50px;background:linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.4));border-right:2px solid #0f62ea;pointer-events:none}
.tpm-portal-hero__ctrl-progress{position:absolute;left:0;bottom:0;width:100%;height:3px;background:linear-gradient(270deg,#fff,hsla(0,0%,100%,0));-webkit-transform:scaleX(0);transform:scaleX(0)}
@media screen and (min-width:1400px){.tpm-portal-hero__ctrls-wrap{left:64px}}
@media screen and (min-width:1600px){.tpm-portal-hero__ctrls-wrap{width:240px;left:64px}.tpm-portal-hero__ctrl{padding:18px 20px 18px 0}.tpm-portal-hero__ctrl-text{font-size:14px;line-height:22px}.tpm-portal-hero__ctrl-mask{height:58px}}
@media screen and (min-width:1808px){.tpm-portal-hero__ctrls-wrap{left:calc(50vw - 840px)}}
.tpm-portal-hero__item{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;padding:96px 48px 40px}
.tpm-portal-hero__item.active{z-index:1}
.tpm-portal-hero__item-content{position:relative;height:100%;padding-left:268px;padding-top:60px;padding-bottom:24px;width:100%;max-width:1680px;margin:0 auto;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}
.tpm-portal-hero__item-title{color:#181818;font-weight:500;font-size:36px;line-height:48px;word-wrap:break-word;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical}
.tpm-portal-hero__item-title .linear{background:linear-gradient(90deg,#0052d9,#606eff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.tpm-portal-hero__item-desc{margin-bottom:auto;margin-top:12px;color:#253554;font-size:14px;line-height:22px}
@media screen and (min-width:769px){.tpm-portal-hero__item-desc{word-wrap:break-word;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical}}
.tpm-portal-hero__item-btn{cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;margin-top:32px;margin-bottom:48px;width:300px;padding:10px 16px;background:linear-gradient(90deg,#0059eb,#2677ff);font-size:16px;line-height:24px;font-weight:500;color:#fff}
@media screen and (min-width:769px){.tpm-portal-hero__item-btn{cursor:pointer;position:relative;overflow:hidden;--hero-btn-mx:50%;--hero-btn-my:50%}.tpm-portal-hero__item-btn:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:1;opacity:0;transition:opacity .25s ease;background:radial-gradient(200px circle at var(--hero-btn-mx) var(--hero-btn-my),hsla(0,0%,100%,.28),hsla(0,0%,100%,0) 65%)}.tpm-portal-hero__item-btn:hover:before{opacity:1}}
@media screen and (min-width:769px) and (prefers-reduced-motion:reduce){.tpm-portal-hero__item-btn:before{transition:none}}
@media screen and (min-width:769px){.tpm-portal-hero__item-btn .tpm-portal-hero__item-btn-icon,.tpm-portal-hero__item-btn .tpm-portal-hero__item-btn-text{position:relative;z-index:2}}
@media screen and (min-width:769px){.tpm-portal-hero__item-btn:hover .tpm-portal-hero__item-btn-icon{-webkit-transform:translateX(4px);transform:translateX(4px)}}
.tpm-portal-hero__item-btn,.tpm-portal-hero__item-desc,.tpm-portal-hero__item-title{max-width:500px;position:relative;z-index:1}
.tpm-portal-hero__item-btn-text{color:#fff;font-size:14px;line-height:22px;font-weight:500}
.tpm-portal-hero__item-btn-icon{display:block;width:14px;height:5px;background-image:url(../images/tpm-portal-hero-btn-icon.svg);background-size:cover;transition:all .3s ease-in-out}
.tpm-portal-hero__theme{max-width:650px;width:calc(100% - 788px);height:280px;position:absolute;top:50%;right:0;-webkit-transform:translateY(-50%);transform:translateY(-50%);-webkit-transform-origin:center;transform-origin:center;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}
.tpm-portal-hero__theme-bg,.tpm-portal-hero__theme-video{width:100%;position:absolute;left:0;top:0}
.tpm-portal-hero__theme-bg,.tpm-portal-hero__theme-fg,.tpm-portal-hero__theme-video{height:100%;-o-object-fit:contain;object-fit:contain;-o-object-position:center;object-position:center}
.tpm-portal-hero__theme-fg{max-width:calc(100% + 64px);width:auto;position:relative;z-index:1}
@media screen and (min-width:1400px){.tpm-portal-hero__item{padding:104px 64px 48px}.tpm-portal-hero__item-btn,.tpm-portal-hero__item-desc,.tpm-portal-hero__item-title{max-width:540px}.tpm-portal-hero__item-title{font-size:40px;line-height:52px}.tpm-portal-hero__theme{width:calc(100% - 788px)}}
@media screen and (min-width:1600px){.tpm-portal-hero__item-content{padding-left:288px}.tpm-portal-hero__item-title{font-size:42px;line-height:56px}.tpm-portal-hero__item-btn,.tpm-portal-hero__item-desc,.tpm-portal-hero__item-title{max-width:600px}}
@media screen and (min-width:1920px){.tpm-portal-hero__item{padding:104px 120px 48px}.tpm-portal-hero__item-title{font-size:48px;line-height:56px}.tpm-portal-hero__item-btn,.tpm-portal-hero__item-desc,.tpm-portal-hero__item-title{max-width:720px}.tpm-portal-hero__item-btn{width:340px;padding:12px 16px;margin-top:40px}}
@media screen and (max-width:768px){.tpm-portal-hero__item{opacity:1;padding:32px 24px 44px;background-size:768px 250px;background-position:50%}.tpm-portal-hero__item-title{color:#181818;font-size:32px;line-height:48px}.tpm-portal-hero__item-desc{white-space:nowrap;word-break:keep-all;overflow:hidden;text-overflow:ellipsis}}
@media screen and (max-width:600px){.tpm-portal-hero__item{opacity:1;padding:32px 16px 44px}.tpm-portal-hero__item-title{color:#181818;font-size:28px;line-height:36px}}
.tpm-portal-hero{background:#e0efff;height:436px;position:relative;overflow:hidden}
.tpm-portal-hero__inner{height:100%;margin:0 auto;position:relative;z-index:1}
.tpm-portal-hero__content{position:relative;width:100%;height:100%}
.tpm-portal-hero__bgs{-webkit-mask:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:100%;height:100%;max-width:2048px}
.tpm-portal-hero__bg{position:absolute;left:0;top:0;width:100%;height:100%;background-size:auto 100%;background-position:50%}
.tpm-portal-hero__video{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:auto;height:100%}
.tpm-portal-hero__bg{opacity:0}
@media screen and (min-width:1400px){.tpm-portal-hero{height:461px}}
@media screen and (min-width:1600px){.tpm-portal-hero{height:500px}}
@media screen and (max-width:768px){.tpm-portal-hero{height:250px}.tpm-portal-hero__swiper{height:100%}.tpm-portal-hero__pagination{z-index:1;position:absolute;left:24px;bottom:18px;width:calc(100% - 48px);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.tpm-portal-hero__pagination-num{-ms-flex-negative:0;flex-shrink:0;color:rgba(0,0,0,.35);font-size:12px;line-height:20px;font-weight:500}.tpm-portal-hero__pagination-current{color:#000}.tpm-portal-hero__pagination-bullets{width:0;-ms-flex-positive:1;flex-grow:1;height:12px;margin-left:16px;display:-ms-flexbox;display:flex}.tpm-portal-hero__pagination-bullet{width:0;-ms-flex:1;flex:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.tpm-portal-hero__pagination-bullet:after{content:"";display:block;width:100%;height:2px;background:rgba(0,0,0,.1)}.tpm-portal-hero__pagination-bullet.is-active:after{background:#000}}
@media screen and (max-width:600px){.tpm-portal-hero__pagination{left:16px;bottom:16px;width:calc(100% - 32px)}}
.tpm-portal-entry__event{width:36%;min-width:516px;height:auto;padding:32px 0 18px 16px;position:relative;background-size:cover;background-position:100% 50%;background-repeat:no-repeat;transition:all .3s ease-in-out}
.tpm-portal-entry__event:before{content:"";width:1px;height:calc(100% - 40px);background:#eee;position:absolute;left:0;top:20px}
@media screen and (min-width:769px){.tpm-portal-entry__event:hover{box-shadow:0 4px 32px 0 rgba(16,52,113,.1)}.tpm-portal-entry__event:hover:before{display:none}}
.tpm-portal-entry__event-tag{position:absolute;top:0;right:0;padding:3px 12px 3px 3px;background:linear-gradient(90deg,#5171ff,#5454ff);color:#fff;font-size:12px;line-height:20px}
.tpm-portal-entry__event-tag:before{content:"";position:absolute;left:-20px;top:0;width:22px;height:26px;background-size:cover;background-image:url(../images/tpm-portal-entry-tag.svg)}
.tpm-portal-entry__event-img-wrap{line-height:0}
.tpm-portal-entry__event--default:after{content:"";width:36px;height:36px;position:absolute;top:50%;right:32px;-webkit-transform:translateY(-50%);transform:translateY(-50%);background-size:cover;background-image:url(../images/tpm-portal-entry-icon.svg);opacity:0;transition:all .3s ease-in-out}
@media screen and (min-width:769px){.tpm-portal-entry__event--default:hover:after{opacity:1}}
.tpm-portal-entry__event--default:after{display:none;content:none}
.tpm-portal-entry__event--default .tpm-portal-entry__event-inner{height:100%;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;-ms-flex-align:start;align-items:flex-start}
.tpm-portal-entry__event--default .tpm-portal-entry__event-img{height:20px}
.tpm-portal-entry__event--default .tpm-portal-entry__event-desc{margin-top:12px;color:#253554;max-width:100%;font-weight:500;position:relative;font-size:16px;line-height:24px}
.tpm-portal-entry__event--default .tpm-portal-entry__event-desc:after{margin-left:12px;display:inline-block;content:"\7ACB\5373\9009\8D2D";background:#27b994;color:#fff;font-size:14px;font-weight:500;line-height:22px;padding:3px 32px 3px 12px;transition:all .3s ease-in-out}
.tpm-portal-entry__event--default .tpm-portal-entry__event-desc:before{content:"";width:10px;height:10px;display:block;background-size:cover;background-image:url(../images/tpm-portal-entry-wb-arrow.svg);position:absolute;right:12px;top:9px}
@media screen and (min-width:769px){.tpm-portal-entry__event:hover .tpm-portal-entry__event-desc:after{background:#15aa84}}
.tpm-portal-entry__event--links .tpm-portal-entry__event-inner{height:100%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}
.tpm-portal-entry__event--links .tpm-portal-entry__event-img{-ms-flex-negative:0;flex-shrink:0;height:56px}
.tpm-portal-entry__event--links .tpm-portal-entry__event-links{-ms-flex-positive:1;flex-grow:1;width:0;margin-left:8px;padding-left:8px;position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap}
.tpm-portal-entry__event-item{width:calc(33.33333% - 5.33333px)}
.tpm-portal-entry__event-item:nth-child(3n+2),.tpm-portal-entry__event-item:nth-child(3n+3){margin-left:8px}
.tpm-portal-entry__event-item:nth-child(n+4){margin-top:12px}
.tpm-portal-entry__event-link{position:relative;display:block;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;max-width:100%;color:#0d0d0d;font-size:14px;line-height:22px;white-space:nowrap;word-break:keep-all;overflow:hidden;text-overflow:ellipsis;padding-right:12px}
.tpm-portal-entry__event-link:after,.tpm-portal-entry__event-link:before{content:"";width:5px;height:9px;position:absolute;right:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);background-size:cover}
.tpm-portal-entry__event-link:before{background-image:url(../images/tpm-portal-entry-event-link.svg)}
.tpm-portal-entry__event-link:after{background-image:url(../images/tpm-portal-entry-event-link-active.svg);opacity:0}
@media screen and (min-width:769px){.tpm-portal-entry__event-link:hover{color:#0052d9}.tpm-portal-entry__event-link:hover:after{opacity:1}}
.tpm-portal-entry__event--horizontal .tpm-portal-entry__event-inner{height:100%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}
.tpm-portal-entry__event--horizontal .tpm-portal-entry__event-img{height:44px}
.tpm-portal-entry__event--horizontal .tpm-portal-entry__event-desc{color:#0052d9;font-size:16px;line-height:24px;font-weight:500;margin-left:20px;padding-left:20px;position:relative}
.tpm-portal-entry__event--horizontal .tpm-portal-entry__event-desc:before{content:"";height:44px;width:1px;background:#eee;position:absolute;left:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}
.tpm-portal-entry__event-btn{display:none}
@media screen and (min-width:1400px){.tpm-portal-entry__event{padding:32px 0 18px 20px}.tpm-portal-entry__event--links .tpm-portal-entry__event-links{margin-left:12px;padding-left:12px}.tpm-portal-entry__event-item{width:calc(33.33333% - 8px)}.tpm-portal-entry__event-item:nth-child(3n+2),.tpm-portal-entry__event-item:nth-child(3n+3){margin-left:12px}.tpm-portal-entry__event--horizontal .tpm-portal-entry__event-img{height:48px}.tpm-portal-entry__event--horizontal .tpm-portal-entry__event-desc{font-size:18px;line-height:26px}.tpm-portal-entry__event--horizontal .tpm-portal-entry__event-desc:before{height:48px}}
@media screen and (min-width:1600px){.tpm-portal-entry__event--default .tpm-portal-entry__event-img{height:24px}.tpm-portal-entry__event--links .tpm-portal-entry__event-img{height:62px}.tpm-portal-entry__event--links .tpm-portal-entry__event-links{margin-left:16px;padding-left:16px}.tpm-portal-entry__event--horizontal .tpm-portal-entry__event-img{height:52px}.tpm-portal-entry__event--horizontal .tpm-portal-entry__event-desc{font-size:20px;line-height:28px}.tpm-portal-entry__event--horizontal .tpm-portal-entry__event-desc:before{height:52px}}
@media screen and (max-width:768px){.tpm-portal-entry__event{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;background-image:linear-gradient(106deg,#fff -4.75%,#dce0ff 160.58%)!important;background:none!important;border-top:1px solid hsla(0,0%,65.1%,.16);width:100%;min-width:0;padding:16px 24px}.tpm-portal-entry__event:before{display:none}.tpm-portal-entry__event-inner{width:0;-ms-flex-positive:1;flex-grow:1}.tpm-portal-entry__event--default:after{content:none;display:none}.tpm-portal-entry__event--default .tpm-portal-entry__event-img{height:24px}.tpm-portal-entry__event--default .tpm-portal-entry__event-desc{margin-top:8px;width:100%;position:relative;padding-right:76px;white-space:nowrap;word-break:keep-all;overflow:hidden;text-overflow:ellipsis}.tpm-portal-entry__event--default .tpm-portal-entry__event-desc:after{margin-left:0;position:absolute;right:16px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);color:rgba(0,175,102,.9);background:none;padding:0}.tpm-portal-entry__event--default .tpm-portal-entry__event-desc:before{content:"";width:12px;height:12px;background-size:cover;background-image:url(../images/tpm-portal-entry-desc-arrow.svg);position:absolute;right:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.tpm-portal-entry__event--links .tpm-portal-entry__event-inner{display:block}.tpm-portal-entry__event--links .tpm-portal-entry__event-img{height:24px}.tpm-portal-entry__event--links .tpm-portal-entry__event-links{width:100%;margin:16px 0 0;padding:0}.tpm-portal-entry__event--links .tpm-portal-entry__event-links:before{display:none}.tpm-portal-entry__event-item{width:calc(33.33333% - 10.66667px)}.tpm-portal-entry__event-item:nth-child(3n+2),.tpm-portal-entry__event-item:nth-child(3n+3){margin-left:16px}.tpm-portal-entry__event-item:nth-child(n+4){margin-top:12px}.tpm-portal-entry__event--horizontal .tpm-portal-entry__event-inner{display:block}.tpm-portal-entry__event--horizontal .tpm-portal-entry__event-img{height:24px}.tpm-portal-entry__event--horizontal .tpm-portal-entry__event-desc{color:#253554;font-size:14px;line-height:22px;margin:8px 0 0;padding:0}.tpm-portal-entry__event--horizontal .tpm-portal-entry__event-desc:before{display:none}.tpm-portal-entry__event-btn{margin-left:16px;display:block;min-width:200px;padding:4px 15px;border-radius:2px;border:1px solid hsla(0,0%,100%,.94);background:hsla(0,0%,100%,.75);text-align:center;color:#252525;font-size:14px;line-height:22px;display:none}}
@media screen and (max-width:600px){.tpm-portal-entry__event{padding:12px 16px}.tpm-portal-entry__event--default .tpm-portal-entry__event-img,.tpm-portal-entry__event--horizontal .tpm-portal-entry__event-img,.tpm-portal-entry__event--links .tpm-portal-entry__event-img{height:20px}.tpm-portal-entry__event--default .tpm-portal-entry__event-desc,.tpm-portal-entry__event--horizontal .tpm-portal-entry__event-desc{font-size:12px;line-height:20px}.tpm-portal-entry__event--default .tpm-portal-entry__event-desc{font-size:14px;line-height:22px}.tpm-portal-entry__event-btn{min-width:100px}.tpm-portal-entry__event--links{padding-top:20px}.tpm-portal-entry__event-item{width:calc(50% - 8px)}.tpm-portal-entry__event-item:nth-child(3n+2),.tpm-portal-entry__event-item:nth-child(3n+3){margin-left:0}.tpm-portal-entry__event-item:nth-child(2n){margin-left:16px}.tpm-portal-entry__event-item:nth-child(n+3){margin-top:12px}}
.tpm-portal-entry{border-bottom:1px solid #eee;background-size:cover;background-position:50%;padding:0}
.tpm-portal-entry__inner{max-width:none;margin:0 auto;display:-ms-flexbox;display:flex}
/* 入口卡片的图标（用户提供的素材）：图标在左、文字在右，图标不压缩
   注：悬停整卡不位移（用户要求「静默不要动，只让图标动」）→ hover 里写死 transform:none，
       transition 也不带 transform，避免原站照抄来的 translateY(-2px) 让卡片上下跳 */
.tpm-portal-entry__item{display:flex;align-items:center;padding:24px 40px 24px 24px;border-radius:10px;transition:background .25s ease,box-shadow .3s ease-in-out}
.tpm-portal-entry__item:hover{background:#f7faff;transform:none}
.tpm-portal-entry__icon{flex:none;width:72px;height:72px;object-fit:contain;margin-right:30px}
.tpm-portal-entry__body{flex:1;min-width:0}
/* tag 做成小胶囊、标题分级 */
.tpm-portal-entry__tag{display:inline-block;padding:1px 8px;border-radius:4px;background:#eef4ff;color:#0052d9;font-size:12px;line-height:18px}
.tpm-portal-entry__title{margin-top:8px}
.tpm-portal-entry__title p:first-child{font-size:15px;font-weight:600;color:#1d2129}
.tpm-portal-entry__title p:last-child{font-size:12.5px;color:#86909c}
.tpm-portal-entry__arrow{right:20px}
.tpm-portal-entry__item:hover .tpm-portal-entry__arrow:before{transform:translateX(3px)}
/* 活动卡 */
.tpm-portal-entry__event{border-radius:10px;padding:24px 40px 24px 24px}
.tpm-portal-entry__event:hover{box-shadow:0 8px 28px rgba(16,52,113,.12)}
.tpm-portal-entry__event .tpm-portal-entry__icon{background:none}
.tpm-portal-entry__event--default .tpm-portal-entry__event-inner{flex-direction:row;align-items:center}
.tpm-portal-entry__event--default .tpm-portal-entry__event-desc{margin-top:0;font-size:15px;font-weight:600;color:#1d2129}
.tpm-portal-entry__item{height:auto;width:0;-ms-flex-positive:1;flex-grow:1;position:relative;padding:20px 36px 20px 16px;transition:box-shadow .3s ease-in-out}
/* 美化：内边距/圆角必须放在这条原站规则之后（同权重，后置生效） */
.tpm-portal-entry__item{padding:24px 40px 24px 24px;border-radius:10px}
@media screen and (min-width:769px){.tpm-portal-entry__item:hover{z-index:1;box-shadow:0 4px 32px 0 rgba(16,52,113,.1)}}
.tpm-portal-entry__item+.tpm-portal-entry__item:before{content:"";width:1px;height:calc(100% - 40px);background:#eee;position:absolute;left:0;top:20px}
@media screen and (min-width:769px){.tpm-portal-entry__item:hover+.tpm-portal-entry__event:before,.tpm-portal-entry__item:hover+.tpm-portal-entry__item:before,.tpm-portal-entry__item:hover:before{display:none}}
.tpm-portal-entry__tag{color:rgba(0,0,0,.5);font-size:12px;line-height:20px;white-space:nowrap;word-break:keep-all;overflow:hidden;text-overflow:ellipsis}
.tpm-portal-entry__title{width:100%;margin-top:8px;color:rgba(0,0,0,.9);font-size:14px;line-height:22px;font-weight:500;transition:color .3s ease-in-out}
.tpm-portal-entry__title p{white-space:nowrap;word-break:keep-all;overflow:hidden;text-overflow:ellipsis}
@media screen and (min-width:769px){.tpm-portal-entry__item:hover .tpm-portal-entry__title{color:#0052d9}}
.tpm-portal-entry__arrow{width:16px;height:16px;position:absolute;right:16px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}
.tpm-portal-entry__arrow:after,.tpm-portal-entry__arrow:before{content:"";width:100%;height:100%;position:absolute;left:0;top:0;background-size:cover;transition:all .3s ease-in-out}
.tpm-portal-entry__arrow:before{background-image:url(../images/tpm-portal-entry-arrow.svg)}
.tpm-portal-entry__arrow:after{opacity:0;-webkit-transform:translateX(-3px);transform:translateX(-3px);background-image:url(../images/tpm-portal-entry-arrow-active.svg)}
@media screen and (min-width:769px){.tpm-portal-entry__item:hover .tpm-portal-entry__arrow:before{-webkit-transform:translateX(3px);transform:translateX(3px)}.tpm-portal-entry__item:hover .tpm-portal-entry__arrow:after{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}
@media screen and (min-width:1400px){.tpm-portal-entry{padding:0 44px}.tpm-portal-entry__item{padding:20px 40px 20px 20px}}
@media screen and (min-width:1600px){.tpm-portal-entry{padding:0 44px}.tpm-portal-entry__title{font-size:16px;line-height:24px}}
@media screen and (min-width:1920px){.tpm-portal-entry{padding:0 100px}}
@media screen and (max-width:768px){.tpm-portal-entry{background:#fff;border-top:1px solid hsla(0,0%,65.1%,.16);border-bottom:1px solid hsla(0,0%,65.1%,.16);padding:0}.tpm-portal-entry__inner{-ms-flex-wrap:wrap;flex-wrap:wrap}.tpm-portal-entry__item{width:50%;padding:12px 44px 12px 24px}.tpm-portal-entry__item:before{display:none}.tpm-portal-entry__item:nth-child(2n){border-left:1px solid hsla(0,0%,65.1%,.16)}.tpm-portal-entry__item:nth-child(n+3){border-top:1px solid hsla(0,0%,65.1%,.16)}.tpm-portal-entry__title{margin-top:4px;font-size:16px;line-height:24px;white-space:nowrap;word-break:keep-all;overflow:hidden;text-overflow:ellipsis}.tpm-portal-entry__arrow{right:12px;top:40px;-webkit-transform:none;transform:none;background-size:cover;background-image:url(../images/tpm-portal-entry-arrow.svg)}.tpm-portal-entry__arrow:after,.tpm-portal-entry__arrow:before{display:none}}
@media screen and (max-width:600px){.tpm-portal-entry__item{padding:12px 32px 12px 16px}}


/* ===== 补充：活动卡图片的 PC/移动端显隐（原站在其它样式文件里，这里按同口径补上） ===== */
.tpm-portal-show__mobile{display:none}
@media screen and (max-width:768px){
  .tpm-portal-show__pc{display:none}
  .tpm-portal-show__mobile{display:block}
}

/* ===== 入口卡片区 · 美化 =====
   必须放文件末尾：上面照抄的原站规则与这里同权重，只有后置才会生效 */
/* 磨砂玻璃质感：白色半透明玻璃底 + backdrop-filter 背景模糊 + #5a95f5 细描边 + 顶部内高光 */
.tpm-portal-entry__item{padding:24px 44px 24px 24px;border-radius:0;background:rgba(255,255,255,.42);
  -webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4);
  border:1px solid rgba(90,149,245,.3);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75),0 2px 12px rgba(90,149,245,.1);
  transition:background .25s ease,box-shadow .25s ease}
/* tag 改成小方块（原站是纯灰字），直角风格 */
.tpm-portal-entry__tag{display:inline-block;color:#0052d9;background:#eef4ff;padding:1px 8px;border-radius:0;line-height:18px}
/* 标题分级：第一行加粗深色、第二行小字浅灰 */
.tpm-portal-entry__title{margin-top:8px}
.tpm-portal-entry__title p:first-child{font-size:15px;font-weight:600;color:#1d2129}
.tpm-portal-entry__title p:last-child{font-size:12.5px;color:#86909c}
.tpm-portal-entry__arrow{right:22px}
@media screen and (min-width:769px){
  /* 悬停：整卡淡蓝底 + 上浮 + 图标底衬加深 + 箭头右移（原站自带外阴影，这里只补底色和位移） */
  .tpm-portal-entry__item:hover{background:rgba(255,255,255,.62);box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 6px 22px rgba(90,149,245,.2)}
  .tpm-portal-entry__item:hover .tpm-portal-entry__arrow:before{transform:translateX(3px)}
}
/* 四张卡片统一使用主题蓝（#5a95f5 / #0052d9 色系），用深浅区分层次，仍是磨砂玻璃 */
.tpm-portal-entry__inner>.tpm-portal-entry__item:nth-child(1){background:rgba(90,149,245,.18);border-color:rgba(90,149,245,.34)}
.tpm-portal-entry__inner>.tpm-portal-entry__item:nth-child(2){background:rgba(90,149,245,.13);border-color:rgba(90,149,245,.3)}
.tpm-portal-entry__inner>.tpm-portal-entry__item:nth-child(3){background:rgba(90,149,245,.09);border-color:rgba(90,149,245,.26)}
.tpm-portal-entry__inner>.tpm-portal-entry__item:nth-child(4){background:rgba(90,149,245,.06);border-color:rgba(90,149,245,.22)}
@media screen and (min-width:769px){
  .tpm-portal-entry__inner>.tpm-portal-entry__item:nth-child(1):hover{background:rgba(90,149,245,.28)}
  .tpm-portal-entry__inner>.tpm-portal-entry__item:nth-child(2):hover{background:rgba(90,149,245,.23)}
  .tpm-portal-entry__inner>.tpm-portal-entry__item:nth-child(3):hover{background:rgba(90,149,245,.19)}
  .tpm-portal-entry__inner>.tpm-portal-entry__item:nth-child(4):hover{background:rgba(90,149,245,.16)}
}

/* ===== 四张卡片「层级 + 宽度」对齐 =====
   原站版式是「3 张自适应卡 + 1 张 36%/min-width:516px 的活动卡」，四块宽窄不一。
   这里统一成：等宽（各占 1/4）、等高（flex 默认 stretch）、同内边距、同层级，
   只保留图标与底色深浅的差别。窄屏（≤768）仍走原站的 2 列排布。 */
@media screen and (min-width:769px){
  .tpm-portal-entry__inner>.tpm-portal-entry__item{
    flex:1 1 0%;width:auto;min-width:0;box-sizing:border-box;
    padding:24px 48px 24px 24px;border-radius:0;
    position:relative;z-index:1}
  .tpm-portal-entry__inner>.tpm-portal-entry__item:hover{z-index:2}
}
/* 769~1199：一排放不下四块 → 两行两列（每行第一张不要左侧分隔线） */
@media screen and (min-width:769px) and (max-width:1199px){
  .tpm-portal-entry__inner{flex-wrap:wrap}
  .tpm-portal-entry__inner>.tpm-portal-entry__item{flex:1 1 50%}
  .tpm-portal-entry__inner>.tpm-portal-entry__item:nth-child(odd):before{display:none}
}

/* 入口卡片的图标改为「页脚服务保障条」那套精灵动效图（与原站同规格：120×2040，17 帧，steps(16)）
   原站关键帧（60px 盒子走 -960px）按 72px 盒子等比放大 → 16 × 72 = -1152px
   ⚠ 选择器必须带 .tpm-portal-entry__icon（两个类）：同名的 `.tpm-portal-entry__icon{flex:none;width:72px;…}`
     在文件更前面，单用 .nv-svc（一个类）会被它压住 width/height。这里用同权重 + 后置压回来。 */
.tpm-portal-entry__icon.nv-svc{background-repeat:no-repeat;background-size:100% auto;background-position:0 0;
  -webkit-animation:nvSvcRest .3s steps(16) forwards;animation:nvSvcRest .3s steps(16) forwards}
.tpm-portal-entry__icon.nv-svc-1{background-image:url(../images/blocks/ani-5day.8b4d6e68.png)}
.tpm-portal-entry__icon.nv-svc-2{background-image:url(../images/blocks/ani-free.a411eb94.png)}
.tpm-portal-entry__icon.nv-svc-3{background-image:url(../images/blocks/ani-service.a75411e0.png)}
.tpm-portal-entry__icon.nv-svc-4{background-image:url(../images/blocks/ani-time.c32429e2.png)}
.tpm-portal-entry__item:hover .nv-svc{
  -webkit-animation:nvSvcPlay .3s steps(16) forwards;animation:nvSvcPlay .3s steps(16) forwards}
@keyframes nvSvcPlay{0%{background-position:0 0}100%{background-position:0 -1152px}}
@keyframes nvSvcRest{0%{background-position:0 -1152px}100%{background-position:0 0}}

/* 导航菜单：拉开文字间距（原站 item 之间只有 a 自身的内边距，看着挤） */
.pls-nav-list .pls-nav-item{margin:0 18px}
.pls-nav-list .pls-nav-item:first-child{margin-left:0}
.pls-nav-list .pls-nav-item:last-child{margin-right:0}

/* 入口卡片区：整体方正刚硬直角 —— 兜底清掉区块内任何残留圆角 */
.tpm-portal-entry,
.tpm-portal-entry a,
.tpm-portal-entry div,
.tpm-portal-entry span,
.tpm-portal-entry img,
.tpm-portal-entry p{border-radius:0}

/* 入口卡片区：去掉容器自身多余的边框/装饰层，只保留 4 个卡片本身
   padding 归零 → 卡片两侧贴到屏幕最左/最右（原站在 1400px+ 有 44px、1920px+ 有 100px 内边距） */
.tpm-portal-entry{border-bottom:0;background:none;padding:0}
.tpm-portal-entry:before,
.tpm-portal-entry:after,
.tpm-portal-entry__inner:before,
.tpm-portal-entry__inner:after{content:none;display:none}

/* 「从算力到网络，一站式交付」整个模块：铺上用户提供的背景图 bj.png（居中裁切，铺满含内边距的整块）
   内层容器统一透明，否则会被它们自带的白色底挡住（这就是"看不见"的原因） */
/* 图片地址写在模板里（intro.php 内联，带 theme_asset 的 ?v= 版本号，换图必定破缓存） */
.tpm-portal-introduce__section{background-position:center;background-size:cover;background-repeat:no-repeat!important}
.tpm-portal-introduce__section .tpm-portal-section__inner,
.tpm-portal-introduce__section .tpm-portal-section__bd,
.tpm-portal-introduce__section .tpm-portal-module,
.tpm-portal-introduce__section .tpm-portal-introduce{background:transparent!important}

/* 云应用市场 5 张卡的画面：用用户提供的图片（assets/images/market/1~5.jpg）铺满卡片媒体区 */
.tpm-portal-market__card-photo{display:block;width:100%;height:100%;object-fit:cover}

/* 产品介绍轮播 6 张卡的画面：用用户提供的图片（assets/images/intro2/1~6.jpg）铺满
   分两种情况（两卡的媒体区写法不同，必须分开处理，否则必有一边缺图）：
     · 视频卡（云服务器/高防/CDN）——媒体区没有 has-media，是普通流式，图片要 width:100% + height:auto；
     · 纯图片卡（虚拟主机/独立服务器/对象存储）——媒体区是 PC 端「height:0 + padding-top:59% + overflow:hidden」
       的等比占位写法，图片必须绝对定位才能落进占位框里。 */
.tpm-portal-introduce__card-img{position:static;display:block;width:100%;height:auto;object-fit:cover}
.tpm-portal-introduce__card-media.has-media .tpm-portal-introduce__card-img{position:absolute;left:0;top:0;width:100%;height:100%;object-fit:cover}

/* ============ 页脚（纯品牌蓝 · 方正刚硬）============ */
.nv-footer{background:#0052d9;color:rgba(255,255,255,.78);font-size:13px}
/* 页脚上方波浪（照抄授权站 site-home.css，周期/高度按用户要求缩小）：
   四层同形同基线波浪叠加，颜色由浅到深；每层用 pattern 平铺 1 个周期（宽 48），
   svg 宽 200% + 位移 -50% 正好是整数个周期（1440÷48=30）→ 循环无缝；
   最深的 #0052d9 与页脚底色完全相同，所以波浪与页脚之间没有色差、没有缝隙。 */
.nv-foot-wave{position:relative;height:44px;background:#fff;overflow:hidden;line-height:0;margin-bottom:-1px}
/* 底部压边：波浪图案最底层是蓝色，但渲染边缘会有 1px 抗锯齿缝（看起来就是一条分界线）。
   用一条 2px 的同色实心条压在最下面，并把容器与页脚重叠 1px，做到完全融为一体、看不到接缝。 */
.nv-foot-wave:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:#0052d9}
.nv-foot-wave svg{position:absolute;left:0;top:0;width:200%;max-width:none;min-width:200%;height:100%;display:block;will-change:transform}
.nv-foot-wave .wv-c{animation:wvMoveR 200s linear infinite;animation-delay:-50s}
.nv-foot-wave .wv-a{animation:wvMove 60s linear infinite;animation-delay:-20s}
.nv-foot-wave .wv-b{animation:wvMoveR 26s linear infinite}
.nv-foot-wave .wv-d{animation:wvMove 90s linear infinite;animation-delay:-30s}
@keyframes wvMove{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes wvMoveR{from{transform:translateX(-50%)}to{transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){.nv-foot-wave svg{animation:none}}

/* ============ 页面背景动态粒子 ============
   canvas 固定铺满视口、z-index:-1 → 落在「html 白底之上、页面内容之下」；
   因此必须让 body 自身不涂底色（transparent），粒子才能从内容背后透出来。 */
html{background:#fff}
body{background:transparent}
.nv-particles{position:fixed;left:0;top:0;width:100%;height:100%;z-index:-1;pointer-events:none}
/* 各内容区块不要用白底盖住粒子层（保持原有留白结构，只把底色去掉） */
.tpm-portal-section,.tpm-portal-market,.tpm-portal-developer,.tpm-portal-sell,
.tpm-portal-introduce,.tpm-portal-entry{background-color:transparent}
.nv-footer-inner{max-width:1560px;margin:0 auto;padding:0 44px}
.nv-footer-main{padding:0}
/* 上排：服务承诺四栏条（参照主流企业站，底色为半透明白，不改变品牌蓝） */
.nv-footer-promise{background:rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.16)}
.nv-footer-promise-inner{display:grid;grid-template-columns:repeat(4,1fr)}
.nv-footer-promise-item{display:flex;align-items:center;gap:14px;padding:26px 28px;border-left:1px solid rgba(255,255,255,.14)}
.nv-footer-promise-item:first-child{padding-left:0;border-left:0}
.nv-footer-promise-item svg{flex:none;width:30px;height:30px;color:#fff;opacity:.92}
.nv-footer-promise-item b{display:block;margin-bottom:4px;font-size:14px;font-weight:600;color:#fff;letter-spacing:.4px}
.nv-footer-promise-item span{font-size:12px;color:rgba(255,255,255,.68)}
/* 下排：品牌 + 四列导航 + 联系方式 */
/* 注意：nv-footer-body 与 nv-footer-inner 是同一个元素，这里只能用上下 padding，不能写 padding:52px 0（会把左右 44px 清掉） */
.nv-footer-body{display:flex;gap:56px;padding-top:52px;padding-bottom:56px}
/* 品牌区：LOGO 与标语在列内上下左右居中 */
.nv-footer-brand{width:300px;flex:none;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}
.nv-footer-logo{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:700;color:#fff}
.nv-footer-logo i{display:block;width:26px;height:26px;background:linear-gradient(135deg,#0059eb,#2677ff)}
/* 页脚直接用站点 LOGO：蓝色底上必须强制渲染成白色
   （brightness(0) 先把所有不透明像素压成黑，再 invert(1) 反成白；透明区域保持不变） */
.nv-footer-logo-img{display:block;height:38px;width:auto;max-width:240px;object-fit:contain;
  -webkit-filter:brightness(0) invert(1);filter:brightness(0) invert(1)}
@media(max-width:680px){.nv-footer-logo-img{height:28px;max-width:180px}}
.nv-footer-slogan{margin-top:14px;line-height:26px;font-size:13px;color:rgba(255,255,255,.58)}
.nv-footer-cols{flex:1;display:grid;grid-template-columns:repeat(4,1fr);gap:40px;padding:0}
.nv-footer-col-title{margin-bottom:14px;padding-bottom:12px;font-size:13px;font-weight:600;letter-spacing:1px;color:#fff;white-space:nowrap;
  border-bottom:1px solid rgba(255,255,255,.16)}
.nv-footer-col a{display:block;line-height:32px;font-size:13px;color:rgba(255,255,255,.68);white-space:nowrap;transition:color .2s ease,transform .2s ease}
.nv-footer-col a:hover{color:#fff;transform:translateX(4px)}
/* 右侧联系方式 */
.nv-footer-contact{width:220px;flex:none;padding-left:40px;border-left:1px solid rgba(255,255,255,.16)}
.nv-footer-contact-label{display:block;margin:20px 0 6px;font-size:12px;letter-spacing:.4px;color:rgba(255,255,255,.55)}
.nv-footer-contact-label:first-child{margin-top:0}
.nv-footer-contact-tel{display:block;font-size:24px;line-height:32px;font-weight:700;color:#fff;letter-spacing:.5px}
.nv-footer-contact-mail{display:block;font-size:13px;line-height:22px;color:#fff;word-break:break-all}
.nv-footer-contact-time{display:block;font-size:15px;line-height:24px;font-weight:600;color:#fff}
.nv-footer-bottom{border-top:1px solid rgba(255,255,255,.1)}
.nv-footer-bottom-inner{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding-top:24px;padding-bottom:24px}
.nv-footer-copy{margin:0;color:rgba(255,255,255,.45)}
.nv-footer-copy a{color:rgba(255,255,255,.6)}
.nv-footer-links{margin:0}
.nv-footer-links a{margin-left:20px;color:rgba(255,255,255,.45)}
.nv-footer-links a:hover{color:#fff}
@media(max-width:1200px){
  .nv-footer-promise-inner{grid-template-columns:repeat(2,1fr)}
  .nv-footer-promise-item:nth-child(3){padding-left:0;border-left:0}
  .nv-footer-body{flex-wrap:wrap;gap:40px;padding-top:40px;padding-bottom:48px}
  /* 品牌 + 2 列导航 + 联系方式 挤在一行会把「支持与服务」等标题/长链接折行，这里直接降为 2 列 */
  .nv-footer-cols{grid-template-columns:repeat(2,1fr);gap:28px 40px}
  .nv-footer-contact{width:200px;padding-left:32px}
}
@media(max-width:900px){
  .nv-footer-body{flex-direction:column;gap:32px}
  .nv-footer-brand{width:auto}
  .nv-footer-cols{grid-template-columns:repeat(2,1fr);gap:32px 24px}
  .nv-footer-contact{width:auto;padding-left:0;border-left:0}
}
@media(max-width:680px){
  .nv-footer-inner{padding:0 20px}
  .nv-footer-promise-inner{grid-template-columns:1fr}
  .nv-footer-promise-item{padding:18px 0;border-left:0}
  .nv-footer-cols{grid-template-columns:1fr;gap:24px}
  .nv-footer-links a{margin-left:0;margin-right:16px}
}

/* ===== Hero 字号放大（用户要求：主标题加粗加大、描述加大、左侧指示列加大）=====
   放文件末尾覆盖上面照抄来的原站数值（同权重、后置生效），断点结构与原站保持一致。
   配套数值必须成对改：__ctrl 的上下 padding + __ctrl-text 行高 = __ctrl-mask 的高度，
   mask 的 top 由 JS 按 offsetTop 定位，高度一旦对不上就会露出错位。 */
.tpm-portal-hero__item-title{font-weight:600;font-size:42px;line-height:56px}
.tpm-portal-hero__item-desc{font-size:17px;line-height:28px;margin-top:16px}
/* 主标题 + 描述 + 按钮「整块」的纵向位置：只由 __item-content 的上内边距控制（原站 60）。
   改小=上移、改大=下移；腾出的空间会被 __item-desc 的 margin-bottom:auto 吃掉，
   所以按钮不会跟着跑（当前 52）。
   padding-left 控制整块左右位置：改大=右移（原站 268，当前 332；
   ⚠ 右移上限要受左侧指示列约束——列右边缘必须仍小于正文起始位置） */
.tpm-portal-hero__item-content{padding-top:52px;padding-left:332px}
/* 按钮纵向位置：按钮由底部倒推定位（__item-content 的 padding-bottom + 按钮自身 margin-bottom）
   改大=上移、改小=下移；原站 48，当前 56 */
.tpm-portal-hero__item-btn{margin-bottom:56px}
/* 左侧指示列的进度条：原站是白色渐变，这里改成半透明主题蓝（右浓左淡，保留原有的渐隐感） */
.tpm-portal-hero__ctrl-progress{background:linear-gradient(270deg,rgba(0,82,217,.85),rgba(0,82,217,.28))}
.tpm-portal-hero__ctrls-wrap{width:252px}
.tpm-portal-hero__ctrl{padding:16px 12px 16px 0}
.tpm-portal-hero__ctrl+.tpm-portal-hero__ctrl{margin-top:14px}
.tpm-portal-hero__ctrl-text{font-size:16px;line-height:24px}
.tpm-portal-hero__ctrl-mask{height:56px}
@media screen and (min-width:1400px){
  .tpm-portal-hero__item-title{font-size:48px;line-height:62px}
}
@media screen and (min-width:1600px){
  .tpm-portal-hero__item-title{font-size:52px;line-height:68px}
  .tpm-portal-hero__item-content{padding-left:352px}
  .tpm-portal-hero__ctrls-wrap{width:264px}
  .tpm-portal-hero__ctrl{padding:20px 20px 20px 0}
  .tpm-portal-hero__ctrl-mask{height:64px}
}
@media screen and (min-width:1920px){
  .tpm-portal-hero__item-title{font-size:58px;line-height:72px}
}
@media screen and (max-width:768px){
  .tpm-portal-hero__item-title{font-size:36px;line-height:52px}
  .tpm-portal-hero__item-desc{font-size:15px;line-height:24px}
}
@media screen and (max-width:600px){
  .tpm-portal-hero__item-title{font-size:32px;line-height:42px}
}
