/* EthanQuay 首页 —— Stripe 路线
   ---------------------------------------------------------------------------
   与上一版「精密仪器」的区别：分层从「1px 实边框」改为「柔和阴影 + 极淡边框」，
   圆角放大，引入一处渐变光晕做视觉锚点。骨架（网格对齐、等宽标签、数据表达）
   保留，换掉的是表面语言。

   颜色一律取自 NewAPI 设计令牌，因此自动跟随深浅色模式，与控制台永不漂移。
   类名以 eq- 前缀收敛在 .eq-home 下，不与 Tailwind 工具类冲突。 */

.eq-home{
  --eq-line:var(--border);
  --eq-gutter:2px;
  --eq-r:12px;                                   /* 首页局部圆角，比全站令牌更柔 */
  --eq-ease:cubic-bezier(.22,1,.36,1);
  --eq-shadow:0 1px 2px rgba(16,24,40,.04), 0 8px 24px -8px rgba(16,24,40,.08);
  --eq-shadow-lg:0 2px 4px rgba(16,24,40,.04), 0 16px 40px -12px rgba(16,24,40,.12);
  max-width:1180px;margin:0 auto;
  padding:calc(var(--app-header-height,3rem) + 20px) var(--eq-gutter) 0;
}
.eq-home *{box-sizing:border-box}
.eq-home section{margin-bottom:clamp(64px,7.5vw,110px)}

.eq-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--primary);margin:0 0 14px;
  display:flex;align-items:center;gap:9px}
.eq-label::after{content:"";flex:1;height:1px;
  background:linear-gradient(90deg,var(--eq-line),transparent)}

.eq-home h1{font-size:clamp(32px,4.8vw,54px);line-height:1.16;font-weight:600;
  letter-spacing:-.024em;margin:0 0 18px}
.eq-home h1 b{font-weight:600;
  background:linear-gradient(120deg,var(--primary),color-mix(in srgb,var(--primary) 55%,#23c5c5));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--primary)}
.eq-home h2{font-size:clamp(21px,2.7vw,31px);line-height:1.28;font-weight:600;
  letter-spacing:-.016em;margin:0 0 10px}
.eq-home h3{font-size:15.5px;font-weight:600;margin:0 0 7px;letter-spacing:-.005em}
.eq-home p{margin:0;color:var(--muted-foreground);line-height:1.72}
/* .eq-lead 也是 <p>，若靠 .eq-home p 之后的顺序取胜会很脆弱；
   显式提高特异性，确保它自己的下边距不被通用规则压掉。 */
.eq-home p.eq-lead{margin-bottom:28px}
.eq-home p.eq-label{margin-bottom:14px}

/* ---------- HERO ---------- */
/* 下内距单独收小：实测左列(372px)反而比右列示意图(359px)高，
   所以收紧此处不会挤压示意图。与下方 section 外距合计约 88px。 */
.eq-hero{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(28px,4vw,56px);
  align-items:center;padding:clamp(18px,3vw,42px) 0 16px;position:relative;
  margin-bottom:72px}
/* 唯一一处渐变：柔光晕，做视觉锚点用，不铺满。
   注意：早先写成 right:-14% 会让伪元素超出视口右缘，撑出 115px 横向滚动条
   （元素矩形查不出来，只能用 scrollLeft 探测）。改为贴住右缘不外溢。 */
.eq-hero::before{content:"";position:absolute;z-index:0;pointer-events:none;
  top:-12%;right:0;width:74%;height:130%;
  background:radial-gradient(closest-side,
    color-mix(in srgb,var(--primary) 16%,transparent),
    color-mix(in srgb,#23c5c5 8%,transparent) 58%,
    transparent 78%);
  filter:blur(6px)}
.eq-hero>*{position:relative;z-index:1}
.eq-lead{font-size:clamp(15px,1.45vw,17px);max-width:46ch;margin-bottom:28px}

.eq-actions{display:flex;flex-wrap:wrap;gap:11px;margin-bottom:28px}
.eq-btn{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 22px;
  border-radius:var(--eq-r);font-size:14.5px;font-weight:500;text-decoration:none;
  border:1px solid transparent;transition:transform .2s var(--eq-ease),
    box-shadow .2s var(--eq-ease), background-color .2s var(--eq-ease)}
.eq-btn-primary{background:var(--primary);color:var(--primary-foreground);
  box-shadow:0 1px 2px rgba(16,24,40,.06), 0 6px 16px -6px color-mix(in srgb,var(--primary) 55%,transparent)}
.eq-btn-primary:hover{transform:translateY(-1px);
  box-shadow:0 2px 4px rgba(16,24,40,.08), 0 12px 24px -8px color-mix(in srgb,var(--primary) 65%,transparent)}
.eq-btn-ghost{color:var(--foreground);border-color:var(--eq-line);background:var(--background);
  box-shadow:0 1px 2px rgba(16,24,40,.04)}
.eq-btn-ghost:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--primary) 40%,var(--eq-line));
  box-shadow:var(--eq-shadow)}

.eq-status{display:flex;flex-wrap:wrap;align-items:center;gap:9px 20px;
  font-family:var(--font-mono);font-size:11.5px;color:var(--muted-foreground);
  padding-top:20px;border-top:1px solid var(--eq-line)}
.eq-status i{font-style:normal;display:inline-flex;align-items:center;gap:7px}
.eq-dot{width:6px;height:6px;border-radius:50%;background:#16a34a;flex:0 0 6px;
  animation:eq-pulse 2.4s ease-out infinite}
/* 无限动画在离开视口后仍会持续占用 GPU 并耗电。
   由 eq-home.js 用 IntersectionObserver 挂/摘 .eq-idle 来暂停。 */
.eq-idle .eq-dot,.eq-idle .flow{animation-play-state:paused}
@keyframes eq-pulse{
  0%{box-shadow:0 0 0 0 color-mix(in srgb,#16a34a 55%,transparent)}
  70%{box-shadow:0 0 0 7px transparent}
  100%{box-shadow:0 0 0 0 transparent}}

/* ---------- 扇出示意图 ---------- */
.eq-fan{width:100%;max-width:520px;margin-left:auto;display:block;overflow:visible}
.eq-fan .wire{fill:none;stroke:var(--eq-line);stroke-width:1.5}
/* 光点：用 dash 间隙模拟流动，纯 CSS，无 JS */
.eq-fan .flow{fill:none;stroke:var(--primary);stroke-width:1.8;stroke-linecap:round;
  stroke-dasharray:14 150;opacity:.9;animation:eq-flow 3.2s linear infinite}
.eq-fan .flow.d1{animation-delay:0s}     .eq-fan .flow.d2{animation-delay:.42s}
.eq-fan .flow.d3{animation-delay:.84s}   .eq-fan .flow.d4{animation-delay:1.26s}
.eq-fan .flow.d5{animation-delay:1.68s}
@keyframes eq-flow{from{stroke-dashoffset:164}to{stroke-dashoffset:0}}
.eq-fan .node{fill:var(--card);stroke:var(--eq-line);stroke-width:1}
.eq-fan .hub{fill:var(--primary)}
.eq-fan .nlabel{font-family:var(--font-sans);font-size:12.5px;font-weight:500;
  fill:var(--foreground)}
.eq-fan .hlabel{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;
  fill:var(--primary-foreground);text-transform:uppercase}
.eq-fan .cap{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.1em;
  fill:var(--muted-foreground);text-transform:uppercase}

/* ---------- KPI 数据带 ---------- */
.eq-stats{display:grid;grid-template-columns:repeat(4,1fr);
  border:1px solid var(--eq-line);border-radius:var(--eq-r);
  background:var(--card);box-shadow:var(--eq-shadow);overflow:hidden}
.eq-stat{padding:24px 22px;border-right:1px solid var(--eq-line)}
.eq-stat:last-child{border-right:0}
.eq-stat dt{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted-foreground);margin-bottom:10px}
.eq-stat dd{margin:0}
/* 数字与单位必须同基线同行：.eq-val 若为 block，<small> 会被挤到第二行。
   改用 inline-flex + baseline 对齐，单位紧贴数字右下。 */
/* min-width:0 允许 flex 子项收缩；不加时数字会撑破 320px 的窄列。 */
.eq-figure{display:flex;align-items:baseline;gap:4px;min-width:0;flex-wrap:wrap}
.eq-stat,.eq-bill,.eq-plan,.eq-mcard{min-width:0}
.eq-sub,.eq-plan-sub,.eq-bill p,.eq-mcard .scene{overflow-wrap:anywhere}
.eq-val{font-size:36px;line-height:1;font-weight:600;
  letter-spacing:-.025em;color:var(--foreground);font-variant-numeric:proportional-nums}
.eq-unit{font-size:16px;font-weight:500;color:var(--muted-foreground)}
.eq-state{display:inline-flex;align-items:center;gap:9px;font-size:20px;
  font-weight:600;color:var(--foreground);line-height:1}
.eq-sub{display:block;margin-top:9px;font-size:12px;color:var(--muted-foreground);line-height:1.55}

/* ---------- 分组折扣 ---------- */
.eq-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.eq-plan{position:relative;border:1px solid var(--eq-line);border-radius:var(--eq-r);
  background:var(--card);padding:20px 20px 18px;box-shadow:var(--eq-shadow);
  text-decoration:none;color:inherit;display:block;
  transition:transform .22s var(--eq-ease), box-shadow .22s var(--eq-ease),
             border-color .22s var(--eq-ease)}
.eq-plan:hover{transform:translateY(-3px);box-shadow:var(--eq-shadow-lg);
  border-color:color-mix(in srgb,var(--primary) 32%,var(--eq-line))}
.eq-plan-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:12px}
.eq-plan-name{font-size:14.5px;font-weight:600;letter-spacing:-.005em}
.eq-plan-n{font-family:var(--font-mono);font-size:11px;color:var(--muted-foreground)}
.eq-off{display:flex;align-items:baseline;gap:5px}
.eq-off b{font-size:30px;line-height:1;font-weight:600;letter-spacing:-.025em;
  color:var(--primary);font-variant-numeric:proportional-nums}
.eq-off i{font-style:normal;font-size:14px;font-weight:500;color:var(--primary)}
.eq-off.flat b,.eq-off.flat i{color:var(--foreground)}
.eq-plan-sub{display:block;margin-top:9px;font-size:12px;color:var(--muted-foreground);line-height:1.55}

/* ---------- 语义色板 ----------
   分类色（厂商身份）与序数色（折扣力度）分工明确，均经 CVD 验证。

   为什么只有 3 个分类色：6 色在「全对比」场景下硬性失败 ——
   绿↔橙在红绿色盲视角 ΔE 仅 3.2（门槛 8），粉↔橙正常视觉 ΔE 12.9（门槛 15）。
   降到 3 色后浅/深两模式全部通过（最差 CVD ΔE 9.2 / 9.4）。
   这个约束反而倒逼出更好的归类：按上游厂商分，比按内部分组名更贴近用户心智。

   色彩是辅助编码 —— 标签文字始终保留，识别不依赖颜色。 */
.eq-home{
  --c-claude:#2a78d6; --c-claude-bg:#eaf2fc; --c-claude-bd:#c3dcf5;
  --c-gpt:#eb6834;    --c-gpt-bg:#fdeee8;    --c-gpt-bd:#f8cdb9;
  --c-etc:#1baf7a;    --c-etc-bg:#e7f7f1;    --c-etc-bd:#b8e6d4;
  /* 折扣：单色相明度梯度，越省越深 */
  --d1:#0b4272; --d2:#1568a8; --d3:#2a85cc; --d4:#559ed9; --d5:#7fb6e4;
}
.dark .eq-home,.eq-home.dark{
  --c-claude:#3987e5; --c-claude-bg:#16283f; --c-claude-bd:#24456b;
  --c-gpt:#d95926;    --c-gpt-bg:#341d13;    --c-gpt-bd:#5c3320;
  --c-etc:#199e70;    --c-etc-bg:#102c22;    --c-etc-bd:#1c4d3a;
  --d1:#9fd0f5; --d2:#6fb4e8; --d3:#4e9bd8; --d4:#3a7fb8; --d5:#2b6391;
}
/* 分组标签着色：色相 + 淡底 + 同色边框，三重强化但不喧宾夺主 */
.eq-mcard .grp[data-fam="claude"]{color:var(--c-claude);background:var(--c-claude-bg);border-color:var(--c-claude-bd)}
.eq-mcard .grp[data-fam="gpt"]{color:var(--c-gpt);background:var(--c-gpt-bg);border-color:var(--c-gpt-bd)}
.eq-mcard .grp[data-fam="etc"]{color:var(--c-etc);background:var(--c-etc-bg);border-color:var(--c-etc-bd)}
/* 卡片左缘细条：再加一道厂商识别，扫读时无需看标签 */
.eq-mcard{border-left-width:3px}
.eq-mcard[data-fam="claude"]{border-left-color:var(--c-claude)}
.eq-mcard[data-fam="gpt"]{border-left-color:var(--c-gpt)}
.eq-mcard[data-fam="etc"]{border-left-color:var(--c-etc)}

/* 折扣数字按力度取色 */
.eq-off.t1 b,.eq-off.t1 i{color:var(--d1)}
.eq-off.t2 b,.eq-off.t2 i{color:var(--d2)}
.eq-off.t3 b,.eq-off.t3 i{color:var(--d3)}
.eq-off.t4 b,.eq-off.t4 i{color:var(--d4)}
.eq-off.t5 b,.eq-off.t5 i{color:var(--d5)}
/* 折扣力度条：把「越省越多」变成可视长度，色彩之外的第二重编码 */
.eq-bar{height:3px;border-radius:2px;background:var(--eq-line);margin-top:12px;overflow:hidden}
.eq-bar span{display:block;height:100%;border-radius:2px}
.eq-off.t1 ~ .eq-bar span{background:var(--d1)} .eq-off.t2 ~ .eq-bar span{background:var(--d2)}
.eq-off.t3 ~ .eq-bar span{background:var(--d3)} .eq-off.t4 ~ .eq-bar span{background:var(--d4)}
.eq-off.t5 ~ .eq-bar span{background:var(--d5)}

/* ---------- 计费规格说明 ----------
   把真实计费规则摊开讲，比喊「便宜」更能建立信任。 */
.eq-billing{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:16px}
.eq-bill{border:1px solid var(--eq-line);border-radius:10px;background:var(--background);
  padding:16px 17px}
.eq-bill dt{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted-foreground);margin-bottom:8px}
.eq-bill dd{margin:0;font-size:13.5px;font-weight:600;color:var(--foreground);line-height:1.4}
.eq-bill dd em{font-style:normal;color:var(--primary)}
.eq-bill p{margin:6px 0 0;font-size:11.5px;color:var(--muted-foreground);line-height:1.55}

/* ---------- 模型卡：不规则堆叠 ----------
   每张卡带轻微旋转与纵向错位，营造「手工摊开」的层叠感；
   hover 时该卡抬升并回正，同层其他卡后退，形成焦点。
   全部只动 transform / opacity / box-shadow —— GPU 合成，不触发重排。 */
.eq-deck{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;
  padding:10px 4px 14px;perspective:1200px}
.eq-mcard{position:relative;border:1px solid var(--eq-line);border-radius:var(--eq-r);
  background:var(--card);padding:18px 18px 16px;box-shadow:var(--eq-shadow);
  cursor:default;transform-origin:50% 90%;
  transition:transform .34s var(--eq-ease), box-shadow .34s var(--eq-ease),
             border-color .34s var(--eq-ease), opacity .34s var(--eq-ease)}
/* 不规则：奇偶错位 + 微旋转，幅度刻意压得很小，避免显得「坏掉」 */
.eq-mcard:nth-child(4n+1){transform:translateY(6px)  rotate(-1.1deg)}
.eq-mcard:nth-child(4n+2){transform:translateY(-4px) rotate(.7deg)}
.eq-mcard:nth-child(4n+3){transform:translateY(9px)  rotate(1.2deg)}
.eq-mcard:nth-child(4n+4){transform:translateY(-2px) rotate(-.6deg)}
.eq-deck:hover .eq-mcard{opacity:.62;transform:translateY(0) rotate(0deg) scale(.985)}
.eq-deck .eq-mcard:hover{opacity:1;z-index:3;
  transform:translateY(-8px) rotate(0deg) scale(1.03);
  box-shadow:var(--eq-shadow-lg);
  border-color:color-mix(in srgb,var(--primary) 38%,var(--eq-line))}
.eq-mcard .rank{position:absolute;top:12px;right:14px;font-family:var(--font-mono);
  font-size:10px;letter-spacing:.1em;color:var(--muted-foreground);opacity:.7}
.eq-mcard b{display:block;font-family:var(--font-mono);font-size:13.5px;font-weight:500;
  color:var(--foreground);margin-bottom:10px;padding-right:26px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.eq-mcard .scene{display:block;font-size:12.5px;color:var(--muted-foreground);
  line-height:1.5;margin-bottom:12px;min-height:19px}
.eq-mcard .grp{display:inline-block;font-size:11px;padding:3px 9px;border-radius:6px;
  border:1px solid var(--eq-line);color:var(--muted-foreground);background:var(--background)}

/* ---------- 运行时间横幅 ---------- */
.eq-uptime-band{border:1px solid var(--eq-line);border-radius:var(--eq-r);
  background:var(--card);box-shadow:var(--eq-shadow);
  padding:clamp(22px,3vw,34px) clamp(20px,3vw,34px)}
.eq-uptime-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 16px;
  margin-bottom:clamp(18px,2.4vw,26px)}
.eq-uptime-title{display:inline-flex;align-items:center;gap:9px;font-size:15.5px;
  font-weight:600;color:var(--foreground)}
.eq-uptime-since{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.04em;
  color:var(--muted-foreground)}
.eq-uptime-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,1.4vw,16px)}
.eq-ut{border:1px solid var(--eq-line);border-radius:10px;
  background:var(--background);padding:clamp(16px,2vw,22px) 10px;text-align:center}
/* 计时数字用 tabular-nums：秒位每秒跳动，比例数字会让整行左右抖动 */
.eq-ut b{display:block;font-size:clamp(30px,5vw,44px);line-height:1.05;font-weight:600;
  letter-spacing:-.03em;color:var(--foreground);font-variant-numeric:tabular-nums}
.eq-ut span{display:block;margin-top:8px;font-family:var(--font-mono);font-size:11px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--muted-foreground)}

/* ---------- 卡片 ---------- */
.eq-grid{display:grid;gap:16px}
.eq-g3{grid-template-columns:repeat(3,1fr)}
.eq-card{border:1px solid var(--eq-line);border-radius:var(--eq-r);
  background:var(--card);padding:26px 24px;box-shadow:var(--eq-shadow);
  transition:transform .22s var(--eq-ease), box-shadow .22s var(--eq-ease),
             border-color .22s var(--eq-ease)}
.eq-card:hover{transform:translateY(-3px);box-shadow:var(--eq-shadow-lg);
  border-color:color-mix(in srgb,var(--primary) 30%,var(--eq-line))}
.eq-card .eq-no{font-family:var(--font-mono);font-size:11px;color:var(--primary);
  letter-spacing:.1em;margin-bottom:14px;display:block}
.eq-head{max-width:640px;margin-bottom:32px}

/* ---------- 客户端接入 ---------- */
.eq-connect{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(26px,4vw,52px);align-items:center}
.eq-term{border:1px solid var(--eq-line);border-radius:var(--eq-r);overflow:hidden;
  background:var(--card);box-shadow:var(--eq-shadow-lg)}
.eq-term-bar{display:flex;align-items:center;gap:8px;padding:11px 15px;
  border-bottom:1px solid var(--eq-line);background:var(--muted);
  font-family:var(--font-mono);font-size:11px;color:var(--muted-foreground)}
.eq-term-bar u{text-decoration:none;width:8px;height:8px;border-radius:50%;background:var(--eq-line)}
/* 代码块：长 URL（base_url 那行）在 320px 下会撑破容器。
   overflow-x:auto 只让 <pre> 自身可横滚，但 inline 子元素仍会参与父级宽度计算，
   故需显式允许在任意字符处断行。 */
.eq-term pre{margin:0;padding:20px;font-size:12.5px;line-height:1.95;overflow-x:auto;
  font-family:var(--font-mono);white-space:pre-wrap;word-break:break-all}
.eq-term pre span{overflow-wrap:anywhere}
.eq-k{color:var(--primary)}
.eq-v{color:#16a34a}
.eq-c{color:var(--muted-foreground)}
.eq-tags{display:flex;flex-wrap:wrap;gap:7px;padding:0 15px 16px}
.eq-tags span{font-family:var(--font-mono);font-size:11px;padding:4px 10px;
  border-radius:6px;border:1px solid var(--eq-line);color:var(--muted-foreground);
  background:var(--background)}
/* 触控目标不足 44px 会显著提高误触率（WCAG 2.5.5）。
   这里用垂直内距把可点区域撑到 44px，再用负外距抵消视觉位移。 */
.eq-link{display:inline-flex;align-items:center;gap:7px;margin-top:9px;color:var(--primary);
  font-weight:500;text-decoration:none;font-size:15px;
  padding:11px 2px;min-height:44px;
  transition:gap .2s var(--eq-ease)}
.eq-link:hover{gap:12px}

/* ---------- 支持 ---------- */
.eq-support{border:1px solid var(--eq-line);border-radius:var(--eq-r);
  padding:clamp(26px,3.6vw,42px);background:var(--card);box-shadow:var(--eq-shadow)}
.eq-sgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:26px}
.eq-contact{display:flex;align-items:center;gap:13px;padding:16px 17px;
  border:1px solid var(--eq-line);border-radius:10px;text-decoration:none;
  color:inherit;background:var(--background);
  transition:transform .2s var(--eq-ease), box-shadow .2s var(--eq-ease), border-color .2s var(--eq-ease)}
.eq-contact:hover{transform:translateY(-2px);box-shadow:var(--eq-shadow);
  border-color:color-mix(in srgb,var(--primary) 30%,var(--eq-line))}
.eq-ico{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;
  border:1px solid var(--eq-line);color:var(--primary);font-family:var(--font-mono);
  font-size:13px;flex:0 0 34px;background:var(--card)}
.eq-contact b{display:block;font-size:14px;font-weight:600}
.eq-contact small{display:block;font-family:var(--font-mono);font-size:11.5px;
  color:var(--muted-foreground);margin-top:2px}

/* ---------- 内容可见性 ----------
   此前这里是「滚动进场」动画：.eq-reveal 初始 opacity:0，由 IntersectionObserver
   加 .eq-in 才显现。在 NewAPI 的 shadow DOM 环境下该方案不可靠 —— SPA 路由切换
   会重建 shadow host，observer 已 unobserve 的旧节点被销毁、新节点从未注册，
   导致返回主页后整个下半部分永久不可见。

   对量产站点而言，"内容可能不显示" 的风险远大于进场动画的收益，故移除动画，
   内容始终可见。卡片 hover 等交互动效不受影响，保留。 */
.eq-reveal{opacity:1;transform:none}

/* ---------- 响应式 ---------- */
@media(max-width:900px){
  .eq-hero,.eq-connect{grid-template-columns:1fr}
  .eq-g3,.eq-sgrid{grid-template-columns:1fr}
  .eq-stats{grid-template-columns:repeat(2,1fr)}
  .eq-plans{grid-template-columns:repeat(2,1fr)}
  .eq-deck{grid-template-columns:repeat(2,1fr)}
  .eq-billing{grid-template-columns:repeat(2,1fr)}
  .eq-stat{border-bottom:1px solid var(--eq-line)}
  .eq-stat:nth-child(even){border-right:0}
  .eq-stat:nth-last-child(-n+2){border-bottom:0}
  .eq-hero::before{top:-6%;right:0;width:100%;height:80%}
  .eq-fan{max-width:100%;margin:0 auto}
}

/* 平板段校准（641-900px）：此区间 clamp 处于中段，
   h1 已降到 37-40px，而 KPI/计时数字仍是固定 36/44px —— 数字反超标题，
   与窄屏是同一类层级倒挂。此处显式压低数字，保证 h1 始终最大。 */
@media(min-width:641px) and (max-width:900px){
  .eq-val{font-size:28px}
  .eq-val + .eq-unit,.eq-unit{font-size:14px}
  .eq-state{font-size:18px}
  .eq-ut b{font-size:30px}
  .eq-off b{font-size:26px}
}

/* 移动端排版校准：窄视口下 clamp 会集体跌到下限，导致数字反超标题、
   层级倒挂。这里显式重排，保证 h1 > 数字 > h2 > 正文 的次序成立。
   行高同步放松 —— 中文字面率高于西文，1.14 这类比例在中文下过挤。 */
@media(max-width:640px){
  .eq-home{--eq-gutter:16px;--eq-r:12px}
  .eq-home section{margin-bottom:52px}
  .eq-home h1{font-size:29px;line-height:1.3;letter-spacing:-.016em;margin-bottom:15px}
  .eq-home h2{font-size:20px;line-height:1.38;margin-bottom:8px}
  .eq-home h3{font-size:15px}
  .eq-home p.eq-lead{font-size:15px;line-height:1.75;margin-bottom:24px}
  .eq-home p{line-height:1.75}
  .eq-home p.eq-label{font-size:10.5px;letter-spacing:.14em;margin-bottom:12px}
  .eq-val{font-size:25px}
  .eq-unit{font-size:13px}
  .eq-state{font-size:17px}
  .eq-sub{font-size:11.5px;line-height:1.55}
  .eq-stat{padding:18px 16px}
  .eq-plans{grid-template-columns:1fr;gap:11px}
  .eq-plan{padding:17px 17px 15px}
  .eq-off b{font-size:26px}
  .eq-deck{grid-template-columns:1fr;gap:11px;padding:4px 0 8px;perspective:none}
  /* 窄屏取消旋转错位：小卡片上的倾斜只会显得没对齐 */
  .eq-mcard,.eq-deck:hover .eq-mcard,.eq-deck .eq-mcard:hover{transform:none}
  .eq-deck:hover .eq-mcard{opacity:1}
  .eq-mcard{padding:15px 16px 14px}
  .eq-billing{grid-template-columns:1fr;gap:10px}
  .eq-bill{padding:14px 15px}
  .eq-hero{padding:8px 0;gap:26px}
  .eq-btn{height:44px;font-size:14.5px;flex:1 1 auto;justify-content:center}
  .eq-status{gap:8px 14px;font-size:11px;padding-top:15px}
  .eq-card{padding:20px 18px}
  .eq-head{margin-bottom:24px}
  .eq-term pre{padding:16px;font-size:12px;line-height:1.85}
  .eq-support{padding:24px 19px}
}

@media(max-width:560px){
  .eq-uptime-grid{grid-template-columns:repeat(2,1fr);gap:11px}
  .eq-uptime-band{padding:22px 17px}
  .eq-uptime-head{margin-bottom:17px;gap:4px 12px}
  .eq-uptime-title{font-size:14.5px}
  .eq-uptime-since{font-size:11px}
  .eq-ut{padding:17px 8px}
  .eq-ut b{font-size:27px}
  .eq-ut span{font-size:10.5px;letter-spacing:.12em;margin-top:7px}
}

/* 无障碍底线：系统开启「减弱动态效果」时，一切动画与位移全部停用 */
@media(prefers-reduced-motion:reduce){
  .eq-home *,.eq-fan *{animation:none!important;transition:none!important}
  .eq-reveal{opacity:1!important;transform:none!important}
  .eq-mcard,.eq-deck:hover .eq-mcard,.eq-deck .eq-mcard:hover{transform:none!important;opacity:1!important}
}
