.tab-list{display:flex;flex-wrap:wrap;gap:6px;width:max-content;max-width:100%;padding:5px;border:1px solid var(--color-line);border-radius:var(--radius-pill);background:var(--color-panel)}
.tab-list [role="tab"]{min-height:42px;padding:8px 18px;border:0;border-radius:var(--radius-pill);background:transparent;color:var(--color-muted);font-weight:700}
.tab-list [role="tab"][aria-selected="true"]{background:var(--color-canvas);color:var(--color-accent-deep);box-shadow:var(--shadow-card)}
[role="tabpanel"][hidden]{display:none}
.toc-tabs{position:sticky;z-index:50;top:var(--toc-top);display:flex;gap:6px;max-width:100%;margin-block:24px;padding:7px;overflow-x:auto;scrollbar-width:thin;border:1px solid var(--color-line);border-radius:var(--radius-pill);background:var(--color-canvas);box-shadow:var(--shadow-card)}
.toc-tabs a{flex:0 0 auto;min-height:40px;padding:8px 15px;border-radius:var(--radius-pill);color:var(--color-muted);text-decoration:none;white-space:nowrap}
.toc-tabs a:hover,.toc-tabs a.is-current{background:var(--color-accent-soft);color:var(--color-accent-deep);font-weight:700}
.faq-list{display:grid;gap:10px}
.faq-item{border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line)}
.faq-item summary{position:relative;padding:20px 48px 20px 2px;list-style:none;color:var(--color-ink);font-size:1.05rem;font-weight:750}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";position:absolute;right:14px;top:50%;width:28px;height:28px;display:grid;place-items:center;transform:translateY(-50%);border-radius:50%;background:var(--color-panel-strong);color:var(--color-ink)}
.faq-item[open] summary::after{content:"−"}
.faq-answer{padding:0 48px 20px 2px;color:var(--color-muted)}
.price-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch}
.price-card{position:relative;display:flex;min-width:0;flex-direction:column;padding:28px;border:1px solid var(--color-line);border-radius:var(--radius-panel);background:var(--color-canvas);box-shadow:var(--shadow-card)}
.price-card.is-featured{border:2px solid var(--color-accent);background:linear-gradient(180deg,var(--color-accent-soft),var(--color-canvas))}
.price-ribbon{position:absolute;top:16px;right:16px;padding:5px 10px;border-radius:var(--radius-pill);background:var(--color-warning);color:var(--color-ink);font-size:.76rem;font-weight:800}
.price-period{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.1em;color:var(--color-muted)}
.price-value{display:flex;align-items:baseline;gap:5px;margin:18px 0;font-family:var(--font-display);font-size:2.7rem;font-weight:800;line-height:1}
.price-value small{font-size:.9rem;color:var(--color-muted)}
.price-features{display:grid;gap:10px;margin:0 0 24px;padding:0;list-style:none;color:var(--color-muted)}
.price-features li::before{content:"✓";margin-right:8px;color:var(--color-accent);font-weight:800}
.price-card .btn{margin-top:auto}
.table-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--color-line);border-radius:var(--radius-card)}
.data-table,.route-table,.compare-table{width:100%;min-width:720px;background:var(--color-canvas)}
.data-table th,.data-table td,.route-table th,.route-table td,.compare-table th,.compare-table td{padding:15px 18px;border-bottom:1px solid var(--color-line);text-align:left;vertical-align:top}
.data-table th,.route-table th,.compare-table th{background:var(--color-panel-strong);color:var(--color-ink);font-size:.84rem;font-weight:800}
.data-table td:first-child,.route-table td:first-child,.compare-table td:first-child{color:var(--color-ink);font-weight:700}
.data-table tr:last-child td,.route-table tr:last-child td,.compare-table tr:last-child td{border-bottom:0}
.route-group td{background:var(--color-accent-soft);color:var(--color-accent-deep)!important;font-family:var(--font-mono);font-size:.8rem;letter-spacing:.1em}
.prose>.data-table{display:block;max-width:100%;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch}
.platform-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.platform-card{display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:14px;padding:22px;border:1px solid var(--color-line);border-radius:var(--radius-card);background:var(--color-canvas)}
.platform-icon{display:grid;width:46px;height:46px;flex:0 0 auto;place-items:center;border-radius:14px;background:var(--color-panel-strong);color:var(--color-ink)}
.platform-icon svg{width:24px;height:24px}
.platform-card strong{font-size:1.02rem}
.platform-card .btn{margin-top:auto;width:100%}
.article-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.article-card{display:flex;min-width:0;flex-direction:column;padding:24px;border:1px solid var(--color-line);border-radius:var(--radius-card);background:var(--color-canvas);box-shadow:var(--shadow-card)}
.article-card-meta{display:flex;flex-wrap:wrap;gap:8px 14px;margin-bottom:16px;font-family:var(--font-mono);font-size:.76rem;color:var(--color-muted)}
.article-card h3{font-size:1.25rem}
.article-card p{font-size:.94rem}
.article-card>a:last-child{margin-top:auto;font-weight:750;text-decoration:none}
.callout{position:relative;margin-block:24px;padding:20px 22px 20px 28px;border:1px solid var(--color-line);border-radius:var(--radius-card);background:var(--color-panel)}
.callout::before{content:"";position:absolute;top:16px;bottom:16px;left:10px;width:4px;border-radius:var(--radius-pill);background:linear-gradient(var(--color-accent),var(--color-accent-blue))}
.callout strong{color:var(--color-ink)}
.promo-block{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;margin-top:48px;padding:clamp(24px,5vw,46px);overflow-x:clip;border-radius:var(--radius-panel);background:var(--color-ink);color:var(--color-canvas)}
.promo-block h2,.promo-block p{color:var(--color-canvas)}
.promo-block p{margin-bottom:0}
.promo-brand{font-family:var(--font-mono);letter-spacing:.12em;color:var(--color-accent)}
.float-cta{position:fixed;z-index:90;right:28px;bottom:28px;display:inline-flex;min-height:48px;align-items:center;gap:9px;padding:10px 22px;border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-canvas);font-weight:800;text-decoration:none;box-shadow:var(--shadow-button);transition:transform .16s var(--ease)}
.float-cta:hover{transform:translateY(-2px);color:var(--color-canvas)}
.float-cta svg{width:18px;height:18px;flex:0 0 auto}
.hero-preview{position:relative;min-height:calc(100svh - var(--header-height));display:flex;flex-direction:column;align-items:center;overflow-x:clip;background:var(--color-canvas)}
.hero-copy{position:relative;z-index:3;width:100%;max-width:980px;margin-inline:auto;padding:76px var(--gutter) 28px;text-align:center}
.hero-kicker{margin-bottom:22px}
.hero-preview h1{margin-bottom:22px}
.hero-sub{max-width:850px;margin:0 auto 26px;font-size:18px}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:14px;margin-bottom:24px}
.live-badge{display:inline-flex;min-height:40px;align-items:center;gap:9px;padding:7px 17px;border:1px solid var(--color-line);border-radius:var(--radius-pill);background:var(--color-canvas);font-size:.9rem;font-weight:700}
.hero-trust{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 25px;margin:0 0 26px;padding:0;list-style:none;color:var(--color-muted);font-size:.88rem}
.hero-trust li{display:flex;align-items:center;gap:7px}
.check-icon{width:15px;height:15px;flex:0 0 auto;color:var(--color-accent)}
.hero-legend{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:9px 22px;margin-top:12px}
.legend-label{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.14em;color:var(--color-muted)}
.legend-item{display:inline-flex;align-items:center;gap:7px;font-size:.8rem}
.legend-item svg{width:18px;height:18px;flex:0 0 auto;color:var(--color-muted)}
.flag-badge{width:25px;height:17px;flex:0 0 auto;overflow:hidden;border:1px solid var(--color-line);border-radius:5px}
.flag-badge svg{width:100%;height:100%}
.hero-route{position:absolute;z-index:1;inset:0;pointer-events:none}
.route-canvas{position:relative;width:1440px;height:700px;margin-inline:auto}
.route-lines{position:absolute;inset:0;width:1440px;height:700px}
.route-line{fill:none;stroke-width:2;stroke-linecap:round}
.route-a{stroke:var(--color-accent)}
.route-b{stroke:var(--color-success)}
.route-c{stroke:var(--color-warning)}
.route-junction{fill:var(--color-ink)}
.route-end{fill:var(--color-accent)}
.route-halo{fill:var(--color-accent-soft)}
.route-node{position:absolute;display:flex;align-items:center;gap:10px;padding:10px 13px;border:1px solid var(--color-line);border-radius:var(--radius-card);background:var(--color-canvas);box-shadow:var(--shadow-card)}
.route-node-hkg{left:118px;top:88px}
.route-node-sin{left:118px;top:330px}
.route-node-nrt{left:1132px;top:94px}
.route-node-lax{left:1132px;top:220px}
.route-node-meta{display:flex;flex-direction:column;line-height:1.2}
.route-node-meta b{font-size:.86rem}
.route-node-meta code{font-size:.62rem;letter-spacing:.12em;color:var(--color-muted)}
.route-online{width:7px;height:7px;flex:0 0 auto;border-radius:50%;background:var(--color-success);box-shadow:0 0 0 3px var(--color-accent-soft)}
.stats-band{position:relative;z-index:3;width:100%;margin-top:auto;border-top:1px solid var(--color-line);background:var(--color-panel)}
.stats-band-inner{display:grid;grid-template-columns:repeat(4,1fr);max-width:1160px;margin-inline:auto;padding:18px var(--gutter)}
.stat-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 12px}
.stat-item+.stat-item{border-left:1px solid var(--color-line)}
.stat-item span{font-size:.75rem;color:var(--color-muted)}
.stat-item strong{font-family:var(--font-mono);font-size:1.28rem}
.preview-main{overflow-x:clip}
.preview-section{padding-top:80px;padding-bottom:80px;border-top:1px solid var(--color-line)}
.preview-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:32px}
.preview-heading p{max-width:540px;margin:0}
.swatch-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.swatch{overflow:hidden;border:1px solid var(--color-line);border-radius:var(--radius-card);background:var(--color-canvas)}
.swatch-color{height:86px}
.swatch-meta{padding:12px;font-family:var(--font-mono);font-size:.72rem}
.swatch-bg{background:var(--color-canvas)}
.swatch-panel{background:var(--color-panel)}
.swatch-panel-strong{background:var(--color-panel-strong)}
.swatch-line{background:var(--color-line)}
.swatch-accent{background:var(--color-accent)}
.swatch-accent-deep{background:var(--color-accent-deep)}
.swatch-blue{background:var(--color-accent-blue)}
.swatch-ink{background:var(--color-ink)}
.swatch-muted{background:var(--color-muted)}
.swatch-success{background:var(--color-success)}
.swatch-warning{background:var(--color-warning)}
.swatch-danger{background:var(--color-danger)}
.type-samples{display:grid;gap:24px}
.type-display{font-family:var(--font-display);font-size:clamp(44px,7vw,72px);font-weight:800;line-height:1.1}
.type-body{max-width:720px;font-size:18px;color:var(--color-muted)}
.type-mono{font-family:var(--font-mono);letter-spacing:.08em}
.component-strip{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.preview-footer{margin-top:0}
.flag-white{fill:var(--color-canvas)}
.flag-red{fill:var(--color-flag-red)}
.flag-blue{fill:var(--color-flag-blue)}
.flag-yellow{fill:var(--color-warning)}
.flag-black{fill:var(--color-ink)}
@media(max-width:1180px){
  .route-lines{display:none}
  .hero-route{position:relative;order:3;width:100%;padding:8px var(--gutter) 30px}
  .route-canvas{width:auto;height:auto;display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
  .route-node{position:static}
  .stats-band{order:4}
}
@media(max-width:900px){
  .platform-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .article-grid{grid-template-columns:1fr}
  .swatch-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .stats-band-inner{grid-template-columns:repeat(2,1fr);gap:12px 0}
  .stat-item:nth-child(3){border-left:0}
}
@media(max-width:768px){
  .price-grid{grid-template-columns:1fr}
  .hero-copy{padding-top:44px}
  .hero-sub{font-size:15px}
  .live-badge{display:none}
  .promo-block{grid-template-columns:1fr}
  .preview-heading{display:block}
}
@media(max-width:640px){
  .platform-grid,.swatch-grid{grid-template-columns:1fr}
  .tab-list{width:100%;overflow-x:auto;flex-wrap:nowrap}
  .tab-list [role="tab"]{flex:0 0 auto}
  .float-cta{right:16px;bottom:16px}
  .hero-actions{display:grid;grid-template-columns:1fr;width:100%}
  .hero-legend{justify-content:flex-start}
  .stats-band-inner{padding-inline:var(--gutter)}
}
@media(prefers-reduced-motion:reduce){
  .float-cta,.float-cta:hover{transform:none;transition:none}
}

/* 2026-08-20 小学生走查:悬浮 CTA 压字(压正文段尾/博客卡标题/页脚法律链,JVVPN/HBVPN/VPNFF 最狠)。
   页尾追加与浮标等高的垫块:滚到底时浮标落在空白带上,不再永久遮挡内容 */
body:has(.float-cta)::after {
  content: '';
  display: block;
  height: calc(88px + env(safe-area-inset-bottom, 0px));
}
