html{font-size:62.5%}
body[data-page-theme="crimson"]{--m:var(--crimson)}

/* 根目录静态页共用容器：FAQ/法务/联系/公告等复用 member 的 mc-* 组件，但不带 member-page。 */
body.cine > .mc-wrap{max-width:880px;margin:0 auto;padding:22px 18px 64px;display:flex;flex-direction:column;gap:18px}
body.cine > .mc-wrap.bl-wrap{max-width:760px}
@media(max-width:600px){body.cine > .mc-wrap{padding:16px 14px 54px;gap:14px}}

/* FAQ 手风琴 —— 复用 mc-card,单条为一张卡 */
.faq-item{padding:0;overflow:hidden}
.faq-q{display:flex;align-items:center;gap:12px;width:100%;
  padding:16px 18px;background:transparent;border:0;cursor:pointer;
  color:var(--title);text-align:left;font:inherit}
.faq-q>b{flex:1 1 auto;font-size:1.5rem;font-weight:700;line-height:1.45}
.faq-q__chev{flex:0 0 auto;width:18px;height:18px;color:var(--ink-3);
  transition:transform .26s ease,color .26s ease}
.faq-item.is-open .faq-q__chev{transform:rotate(180deg);color:var(--gold)}
.faq-item.is-open .faq-q>b{color:var(--gold)}
.faq-a{padding:0 18px 16px;border-top:1px solid var(--line);margin-top:-1px}
.faq-a p{margin:12px 0 0;color:var(--ink-2);font-size:1.4rem;line-height:1.75}
.faq-a p:first-child{margin-top:14px}
.faq-a b{color:var(--gold)}
.faq-a code{font-family:var(--font-latin);color:var(--title);
  background:var(--fill-1);border:1px solid var(--line);
  border-radius:6px;padding:1px 6px;font-size:1.3rem}
.faq-item:not(.is-open) .faq-a{display:none}

/* 联系页 */
.mc-copybtn{display:inline-flex;align-items:center;justify-content:center;text-align:center}
.contact-note{margin:0 0 14px;list-style:none;padding:0}
.contact-icon-svg{width:20px;height:20px}
.contact-textarea{resize:vertical;line-height:1.6;padding:11px 13px;height:auto}

/* 留言反馈 · 图片上传 */
.mc-flab__opt{font-style:normal;font-weight:600;color:var(--ink-3)}
.cc-upload{display:flex;flex-direction:column;gap:8px}
.cc-upload__grid{display:flex;flex-wrap:wrap;gap:10px}
.cc-upload__add,.cc-upload__thumb{width:76px;height:76px;border-radius:12px;flex:0 0 auto}
.cc-upload__add{display:inline-flex;align-items:center;justify-content:center;color:var(--ink-3);
  background:var(--fill-1);border:1px dashed var(--line);cursor:pointer;transition:.16s}
.cc-upload__add:hover{color:var(--crimson);border-color:rgba(255,59,92,.5);background:rgba(255,59,92,.05)}
.cc-upload__add svg{width:22px;height:22px;stroke-width:2}
.cc-upload__thumb{position:relative;overflow:hidden;border:1px solid var(--line);background:var(--fill-1)}
.cc-upload__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.cc-upload__del{position:absolute;top:3px;right:3px;width:20px;height:20px;padding:0;border:0;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;border-radius:50%;
  color:#fff;background:rgba(0,0,0,.55);line-height:1}
.cc-upload__del svg{width:12px;height:12px;stroke-width:2.4}
.cc-upload__hint{margin:0;font-size:var(--fz-11_5);color:var(--ink-3)}

/* 平台公告 (.bl-*) —— 复用 member.css 的 .mc-row/.mc-pager。 */
.bl-row{text-decoration:none}
a.bl-row{cursor:pointer}   /* 真实数据下整行是 div、只有行内链接可点，指针手势只留给原型的 a 行 */
.bl-row .mc-row__ic{color:var(--ink-2);background:var(--fill-1);border:1px solid var(--line)}
/* 公告正文是这一行真正的信息（标题只是「收到一条回复」这类分类词），
   所以不跟 .mc-row__sub 的 --ink-3 次要色，提到 --ink-2 并略放大字号。 */
.bl-sub{white-space:normal!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  line-height:1.6;font-size:var(--fz-12_5);color:var(--ink-2)}
.bl-sub b{color:var(--ink);font-weight:700}
.bl-date{font-size:var(--fz-11_5);color:var(--ink-3);font-family:var(--font-latin);white-space:nowrap}
.bl-detail{display:inline-flex;align-items:center;gap:1px;height:28px;padding:0 8px 0 12px;border-radius:var(--r-pill);
  font-size:var(--fz-12);font-weight:700;color:var(--ink-2);background:transparent;border:1px solid var(--line);transition:.15s;white-space:nowrap}
.bl-detail svg{width:14px;height:14px}
.bl-row:hover .bl-detail{color:var(--crimson);border-color:color-mix(in srgb,var(--crimson) 42%,transparent);background:var(--crimson-soft)}
.bl-new{margin-left:7px;display:inline-flex;align-items:center;height:16px;padding:0 6px;border-radius:5px;vertical-align:1px;
  font-family:var(--font-latin);font-size:var(--fz-9_5);font-weight:800;letter-spacing:.4px;text-transform:uppercase;font-style:normal;
  color:var(--crimson);background:var(--crimson-soft);border:1px solid color-mix(in srgb,var(--crimson) 38%,transparent)}
.bl-sub a{color:var(--crimson);text-decoration:underline;text-underline-offset:2px}   /* 公告正文里后台写入的跳转链接 */
.bl-empty__sub{font-size:var(--fz-12_5);color:var(--ink-3)}
/* 已读只做「轻微退后」，不是「看不清」：进页面就会把全部消息置为已读，
   再来一次整列都是 is-read，原来的 opacity:.5 叠在 --ink-3 上会暗到读不动。
   未读靠 new 角标区分已经足够，这里只压图标、标题降一档，正文保持可读。 */
.bl-row.is-read{opacity:.88}
.bl-row.is-read:hover{opacity:1}
.bl-row.is-read .mc-row__t{color:var(--ink-2);font-weight:600}
.bl-row.is-read .mc-row__ic{color:var(--ink-3);background:transparent}
.bl-row.is-read .bl-detail{color:var(--ink-3)}
.bl-readall{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;height:32px;padding:0 15px;border-radius:var(--r-pill);
  font-size:var(--fz-12_5);font-weight:700;color:var(--ink-2);background:var(--fill-1);border:1px solid var(--line);cursor:pointer;transition:.15s}
.bl-readall svg{width:14px;height:14px}
.bl-readall:hover{color:var(--crimson);border-color:color-mix(in srgb,var(--crimson) 42%,transparent)}
.bl-readall[disabled]{opacity:.45;pointer-events:none}
@media(max-width:560px){.bl-readall{padding:0 12px;font-size:var(--fz-12)}.bl-readall__t{display:none}}

/* ============================================================
   回家的路 (.hm-/.sp-) —— 永久主域名 + 各线路测速选最快
   注释内避免 星号 紧跟 斜杠 的组合，以免提前闭合注释吞掉后续规则。
   ============================================================ */
.hm-wrap{max-width:760px;margin:0 auto;padding:24px 22px 56px;display:flex;flex-direction:column;gap:22px}

/* —— 永久域名英雄区 —— */
.hm-hero{position:relative;overflow:hidden;border-radius:var(--r-card);padding:26px 30px 28px;
  background:linear-gradient(135deg,#1A1208 0%,#241A0E 34%,#15110B 70%,#1E1610 100%);
  border:1px solid rgba(230,184,115,.3);box-shadow:0 30px 70px -30px rgba(0,0,0,.9),var(--glow-gold)}
.hm-hero::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(620px 320px at 88% -40%,rgba(230,184,115,.26),transparent 64%),
            radial-gradient(500px 320px at 4% 130%,rgba(255,59,92,.20),transparent 66%)}
.hm-hero>*{position:relative;z-index:1}
.hm-hero__kicker{margin:0;display:inline-flex;align-items:center;gap:7px;font-family:var(--font-latin);font-style:italic;font-weight:700;
  font-size:var(--fz-12_5);letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.hm-hero__kicker svg{width:15px;height:15px}
.hm-hero__desc{margin:12px 0 0;max-width:540px;font-size:var(--fz-13_5);line-height:1.75;color:rgba(255,255,255,.72)}
.hm-domain{display:flex;align-items:center;gap:12px;margin-top:20px;padding:13px 13px 13px 18px;border-radius:var(--r-pill);
  background:rgba(255,255,255,.06);border:1px solid rgba(230,184,115,.34);max-width:430px}
.hm-domain__ic{flex-shrink:0;color:var(--gold)}
.hm-domain__ic svg{width:21px;height:21px;display:block}
.hm-domain__lab{flex-shrink:0;font-family:var(--font-latin);font-size:var(--fz-9);letter-spacing:.16em;text-transform:uppercase;color:rgba(230,184,115,.6)}
.hm-domain__v{flex:1;min-width:0;font-family:var(--font-latin);font-weight:800;font-size:clamp(18px,3.2vw,23px);
  letter-spacing:.02em;color:#F6E3B8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hm-domain__cp{flex-shrink:0;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;
  color:#1A1410;background:linear-gradient(135deg,#F6E3B8,#E6B873 58%,#C99A52);border:0;cursor:pointer;transition:.18s}
.hm-domain__cp:hover{box-shadow:0 0 18px -3px rgba(230,184,115,.9)}
.hm-domain__cp svg{width:15px;height:15px}
.hm-hero__tip{margin-top:13px;display:flex;align-items:center;gap:7px;font-size:var(--fz-11_5);color:rgba(240,217,168,.6)}
.hm-hero__tip svg{width:13px;height:13px;color:var(--gold)}

/* —— VIP 专属线路（仅 VIP 渲染，见 home.htm） —— */
.hm-vip{border-radius:var(--r-card);padding:18px 20px 16px;
  background:linear-gradient(135deg,rgba(230,184,115,.10),rgba(255,59,92,.06) 70%,transparent);
  border:1px solid rgba(230,184,115,.26)}
.hm-vip__kicker{margin:0 0 12px;display:inline-flex;align-items:center;gap:7px;font-family:var(--font-latin);font-style:italic;
  font-weight:700;font-size:var(--fz-11_5);letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.hm-vip__kicker svg{width:14px;height:14px}
.hm-vip__row{display:flex;align-items:center;gap:10px;padding:9px 9px 9px 14px;border-radius:var(--r-pill);
  background:rgba(255,255,255,.05);border:1px solid rgba(230,184,115,.2)}
.hm-vip__row+.hm-vip__row{margin-top:9px}
.hm-vip__lab{flex-shrink:0;font-size:var(--fz-12_5);color:var(--ink-2)}
.hm-vip__v{flex:1;min-width:0;font-family:var(--font-latin);font-weight:800;font-size:clamp(15px,2.6vw,18px);
  letter-spacing:.02em;color:#F6E3B8;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hm-vip__v:hover{text-decoration:underline}
.hm-vip__cp{flex-shrink:0;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;
  color:#1A1410;background:linear-gradient(135deg,#F6E3B8,#E6B873 58%,#C99A52);border:0;cursor:pointer;transition:.18s}
.hm-vip__cp:hover{box-shadow:0 0 16px -3px rgba(230,184,115,.9)}
.hm-vip__cp svg{width:13px;height:13px}
.hm-vip__tip{margin:11px 2px 0;font-size:var(--fz-11_5);color:rgba(240,217,168,.55)}

/* —— 区段标题 + 重测按钮 —— */
.hm-sec{display:flex;align-items:center;gap:11px;margin:2px 2px -2px}
.hm-sec b{font-family:var(--font-serif);font-weight:800;font-size:var(--fz-18);color:var(--title)}
.hm-sec span{font-size:var(--fz-12);color:var(--ink-3)}
.sp-retest{margin-left:auto;display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 16px;border-radius:var(--r-pill);
  font-size:var(--fz-12_5);font-weight:700;color:var(--crimson);background:var(--crimson-soft);border:1px solid rgba(255,59,92,.4);
  cursor:pointer;transition:.18s}
.sp-retest:hover{background:var(--crimson);color:#fff;box-shadow:0 0 18px -4px rgba(255,59,92,.8)}
.sp-retest svg{width:15px;height:15px;transition:transform .5s}
.sp-retest.is-spin svg{transform:rotate(360deg)}

/* —— 测速线路列表 —— */
.sp-list{display:flex;flex-direction:column;gap:9px}
.sp-card{position:relative;display:flex;align-items:center;gap:13px;padding:14px 14px 14px 16px;border-radius:13px;
  background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-s);text-decoration:none;transition:transform .16s,border-color .2s,box-shadow .22s}
.sp-card:hover{border-color:rgba(255,59,92,.4);box-shadow:var(--glow-red);transform:translateY(-1px)}
.sp-card__lab{flex-shrink:0;min-width:52px;height:24px;padding:0 10px;border-radius:var(--r-pill);display:inline-flex;align-items:center;justify-content:center;
  font-size:var(--fz-11_5);font-weight:700;color:var(--ink-3);background:var(--fill-1);border:1px solid var(--line)}
.sp-card__dom{flex:1;min-width:0;font-family:var(--font-latin);font-weight:700;font-size:var(--fz-15_5);color:var(--ink);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sp-card__lat{flex-shrink:0;display:inline-flex;align-items:center;gap:7px;min-width:88px;justify-content:flex-end;
  font-family:var(--font-latin);font-weight:700;font-size:var(--fz-13);color:var(--ink-3)}
.sp-dot{width:8px;height:8px;border-radius:50%;background:var(--ink-3);flex-shrink:0;transition:.2s}
.sp-card__go{flex-shrink:0;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:var(--ink-3);
  border:1px solid var(--line);transition:.16s}
.sp-card:hover .sp-card__go{color:var(--crimson);border-color:var(--crimson)}
.sp-card__go svg{width:16px;height:16px;stroke-width:2.4}
/* 测速状态 */
.sp-card__lat.is-testing{color:var(--ink-3);animation:spPulse 1s ease-in-out infinite}
@keyframes spPulse{50%{opacity:.4}}
.sp-card__lat.is-fast{color:#46c277}.sp-card__lat.is-fast .sp-dot{background:#3fb96b;box-shadow:0 0 8px rgba(63,185,107,.7)}
.sp-card__lat.is-ok{color:var(--gold)}.sp-card__lat.is-ok .sp-dot{background:var(--gold)}
.sp-card__lat.is-slow{color:#FF6177}.sp-card__lat.is-slow .sp-dot{background:#FF6177}
.sp-card__lat.is-fail{color:var(--ink-3);opacity:.7}.sp-card__lat.is-fail .sp-dot{background:#7a3b44}
/* 主域名 + 最快线路 */
.sp-card--primary .sp-card__lab{color:#1A1410;background:linear-gradient(135deg,#F6E3B8,#E6B873);border-color:transparent}
.sp-card.is-fastest{border-color:rgba(230,184,115,.6);background:rgba(230,184,115,.07);box-shadow:0 0 0 1px rgba(230,184,115,.4),var(--glow-gold)}
.sp-best{position:absolute;top:-9px;left:14px;height:18px;padding:0 9px;border-radius:var(--r-pill);display:inline-flex;align-items:center;gap:4px;
  font-size:var(--fz-10_5);font-weight:800;color:#1A1410;background:linear-gradient(135deg,#F6E3B8,#E6B873);box-shadow:0 4px 14px -4px rgba(230,184,115,.8)}
.sp-best svg{width:11px;height:11px}

@media (max-width:600px){
  .hm-wrap{padding:18px 14px 48px;gap:18px}
  .hm-hero{padding:24px 18px}
  .hm-domain{flex-wrap:wrap}
  .hm-vip{padding:16px 14px 14px}
  .hm-vip__lab{font-size:var(--fz-11_5)}
  .sp-card__dom{font-size:var(--fz-14)}
  .sp-card__lat{min-width:74px;font-size:var(--fz-12)}
}

/* 法务文档排版(内容取自官方备份,样式 noir 化) */
.lg-doc{font-size:var(--fz-14);line-height:1.9;color:var(--ink-2)}
.lg-doc__h1{font-family:var(--font-serif);font-weight:900;font-size:clamp(19px,3vw,25px);color:var(--title);margin:0 0 14px;line-height:1.3}
.lg-doc h2{font-family:var(--font-serif);font-weight:800;font-size:clamp(15px,2.2vw,18px);color:var(--title);margin:22px 0 8px;padding-top:16px;border-top:1px solid var(--line)}
.lg-doc h2:first-of-type{margin-top:4px}
.lg-doc h3{font-weight:800;font-size:var(--fz-14_5);color:var(--ink);margin:16px 0 6px}
.lg-doc p{margin:0 0 12px;word-break:break-word}
.lg-doc ul,.lg-doc ol{margin:0 0 12px;padding-left:22px}
.lg-doc li{margin:4px 0}
.lg-doc a{color:var(--crimson);text-decoration:none}
.lg-doc a:hover{text-decoration:underline}
.lg-doc strong,.lg-doc b{color:var(--ink);font-weight:700}

/* —— 错误页（error/404.htm、error/403.htm）——
   居中一屏：巨号状态码 + 标题 + 说明 + 两枚动作。
   状态码用 Playfair(--font-latin) 打底、金红渐变裁进文字，只当装饰，
   所以挂了 aria-hidden——真正念给读屏的是下面的 h1 文案。 */
.err-wrap{min-height:calc(100vh - 58px - var(--tab-h,0px));display:flex;align-items:center;justify-content:center}
.err{width:100%;max-width:560px;padding:40px 4px 64px;text-align:center}
.err__code{font-family:var(--font-latin);font-weight:900;line-height:1;letter-spacing:.02em;
  font-size:clamp(84px,22vw,168px);
  background:linear-gradient(135deg,var(--crimson),var(--gold));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  /* 渐变裁字在个别老内核上会整块透明；用 currentColor 兜一层，失败时退化成实色而不是看不见 */
  -webkit-text-fill-color:transparent}
.err__t{margin:14px 0 0;font-family:var(--font-serif);font-weight:900;font-size:clamp(20px,4.4vw,28px);color:var(--title)}
.err__d{margin:12px 0 0;font-size:var(--fz-14);line-height:1.85;color:var(--ink-3)}
.err__acts{margin-top:28px;display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
@media(max-width:600px){
  .err{padding:24px 4px 48px}
  /* H5 两枚按钮各占一行会更好按，但不要 width:100% —— .ds-btn 是 inline-flex，
     撑满后左右会顶到 .mc-wrap 的内距上，与页面其它 CTA 的观感不一致 */
  .err__acts .ds-btn{flex:1 1 140px;justify-content:center}
}
