html{scroll-padding-top:118px}

/* ==========================================================================
   组件规范 · Apple 设计语言（第三阶段）
   --------------------------------------------------------------------------
   A. 圆角：全部是**连续曲率**（squircle），由 assets/squircle.js 按 data-squircle
      生成 clip-path。数值含义 = 等效圆角半径（与圆弧圆角同样"圆"的程度）。
      三档 + 胶囊：
        --r-control 12px  按钮、小控件、勾选块
        --r-card    18px  卡片、二维码图块
        --r-panel   26px  浮层/材质面板（说明浮窗、手机底部说明卡）
        胶囊（角标 chip）= 高度的一半，data-squircle="pill"
      嵌套规则：**内层圆角 = 外层 − 内边距**。按钮发丝面 = 12−1 = 11px
      （.sq::before 内缩 1px + --sq-clip-inner，由脚本按同一规则算）；
      二维码卡片 18px、内边距 18px → 里面的二维码图块圆角 0，且不裁切、不缩放。
      只有当元素高度 < 2×半径 时才用胶囊。

   B. 阴影：三档，每档都是「环境光 + 主光」两层（模糊大、透明度低、负 spread），
      禁止 0 2px 4px rgba(0,0,0,.5) 这种硬阴影。
        --sh-1 贴地控件（按钮）  --sh-2 卡片  --sh-3 浮层/材质（浮得最高）
      圆角被裁切的组件（按钮、面板、卡片）用同值的 drop-shadow 写法 --sh-*-drop，
      这样影子跟着曲率外形走，不会在角上露出方角。

   C. 材质（浮在内容之上时用）：半透白 + 背景模糊 + 0.5px 内高光 + 发丝边。
      不用渐变假装玻璃（渐变只允许出现在手机端文字上方的极窄过渡带）。

   D. 动效：「轻」。统一 180ms cubic-bezier(.32,.72,0,1)；按下 scale(.98)，
      悬停只提亮、不减投影；不用弹跳，位移不超过 2px。
      焦点：3px 强调色外圈 + 2px 偏移（键盘可见），不用阴影代替。

   E. 间距与字级：8pt 栅格（面板内边距 24px / 手机 20px；条目间距 12/16/24）。
      文字层级只靠字号/字重/灰度：kicker 11px .14em var(--ink-tertiary)、标题衬线 26–28px/1.35、
      正文 14.5px/1.9 var(--ink-secondary)。
   ========================================================================== */
:root{
  /* A. 圆角 */
  --r-control:12px;
  --r-card:18px;
  --r-panel:26px;
  /* B. 阴影（box-shadow 与 drop-shadow 两种写法成对出现） */
  --sh-1:0 1px 2px rgba(16,24,40,.10),0 0 0 .5px rgba(16,24,40,.04);
  --sh-2:0 6px 16px -6px rgba(20,30,45,.18),0 1px 3px rgba(20,30,45,.08);
  --sh-3:0 18px 48px -18px rgba(20,30,45,.28),0 2px 8px rgba(20,30,45,.08);
  --sh-1-drop:drop-shadow(0 1px 2px rgba(16,24,40,.10));
  --sh-2-drop:drop-shadow(0 6px 16px rgba(20,30,45,.18)) drop-shadow(0 1px 3px rgba(20,30,45,.08));
  --sh-3-drop:drop-shadow(0 18px 48px rgba(20,30,45,.28)) drop-shadow(0 2px 8px rgba(20,30,45,.08));
  /* C. 材质 */
  --mat-bg:rgba(255,255,255,.72);
  --mat-blur:saturate(180%) blur(20px);
  --mat-highlight:inset 0 .5px 0 rgba(255,255,255,.65);
  --hairline:rgba(16,24,40,.08);
  /* D. 动效 */
  --ease:cubic-bezier(.32,.72,0,1);
  --dur:180ms;
  --focus:#326ac2;
  /* E. 8pt 栅格 */
  --sp-1:12px;
  --sp-2:16px;
  --sp-3:24px;
}
/* 文隐官网 · 第三阶段：首屏产品展示与连续脱敏演示。
   所有镜头运动、纸面文字、高亮与粒子都由网页渲染；界面底图来自文隐开发版真实截图。 */

/* ---------- 导航：滚动中保持可用 ---------- */
.header{position:sticky;top:0;z-index:40;width:100%;height:auto;margin:0;display:block;
  background:var(--header-bg);
  -webkit-backdrop-filter:var(--mat-blur);backdrop-filter:var(--mat-blur);
  transition:border-color .25s ease}
.header::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:rgba(23,25,27,0);
  transition:background .25s ease}
.header.is-scrolled::after{background:var(--hairline)}
.header-inner{width:min(1280px,calc(100% - 112px));height:102px;margin:auto;display:flex;align-items:center;justify-content:space-between}

.hero{padding-top:24px}
.hero-note{max-width:560px;margin:22px auto 0;font-size:12px;line-height:1.9;color:var(--ink-secondary);letter-spacing:.01em}
.hero-note a{color:#3a3e44;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:.5px;white-space:nowrap}
.hero-note a:hover{color:var(--ink)}

/* ---------- 连续演示舞台 ---------- */
.cinema{position:relative;--wa-runway:520vh}
.js .cinema{height:calc(100vh + var(--wa-runway));height:calc(100svh + var(--wa-runway))}
.wa-stage{position:sticky;top:0;height:100vh;height:100svh;overflow:clip;background:var(--wa-stage-bg);
  border:var(--wa-frame) solid var(--bg);border-radius:var(--wa-frame-radius);box-shadow:var(--wa-shadow);
  isolation:isolate;box-sizing:border-box}
.cinema.wa-static{height:auto}
.cinema.wa-static .wa-stage{position:static;height:auto;overflow:visible}
.wa-static .wa-canvas{display:none}

.wa-canvas{position:absolute;inset:0;display:none;width:100%;height:100%}
.wa-ready .wa-canvas{display:block}
.wa-ready .wa-fallback{display:none}

.wa-fallback{padding:124px 0 0;display:flex;flex-direction:column;align-items:center}
.wa-fallback figure{width:min(1240px,calc(100% - 96px));margin:0;max-width:none}
.wa-fallback img{display:block;width:100%;height:auto;
  filter:drop-shadow(0 34px 34px rgba(35,49,66,.17)) drop-shadow(0 5px 12px rgba(35,49,66,.07));background:#fff}
.wa-fallback figcaption{margin-top:18px;font-size:12px;color:var(--ink-secondary);line-height:1.8}
.wa-window-shadow{position:absolute;pointer-events:none;opacity:0;z-index:1;
  box-shadow:0 34px 70px -28px rgba(35,49,66,.27),0 5px 14px rgba(35,49,66,.07)}
.wa-fallback .wa-fallback-note{max-width:760px;margin:16px auto 0;font-size:12px;line-height:1.9;color:var(--ink-secondary)}

/* 说明文字浮窗 = 材质面板（用户点名的那块）。
   位置沿用上一轮实测结论：桌面在画面**右侧留白**（p=0.19/0.25/0.32/0.40/0.70 左侧都会压正文，
   右侧 36 个采样点里 33 个为 0）。
   结构（参照按钮）：元素本体不裁、不滤镜，负责布局与投影；两层伪元素负责外形与材质：
     ::before  inset:0      发丝边（clip-path: --sq-clip）
     ::after   inset:.5px   材质面（clip-path: --sq-clip-inner）+ 背景模糊 + 内高光
   投影 --sh-3 挂在 ::after 上，跟着曲率外形走（父元素不挂 filter，否则会挡住它的背景模糊）。
   半径 26px = --r-panel；内边距 24px = --sp-3（8pt 栅格）。 */
.wa-captions{position:absolute;inset:0;pointer-events:none;z-index:2}
.wa-caption{position:absolute;left:auto;right:clamp(24px,3.2vw,84px);bottom:clamp(52px,10vh,128px);
  width:min(348px,26vw);padding:var(--sp-3);opacity:0;will-change:opacity,transform;z-index:0;
  isolation:isolate;transition:opacity var(--dur) var(--ease);--sq-radius:var(--r-panel)}
/* 发丝边那一层同时承担投影：filter 与 clip-path 放在同一个伪元素上，
   影子才会跟着连续曲率外形走；而背景模糊必须放在**兄弟**层（::after），
   因为任何祖先元素的 filter 都会截断 backdrop-filter 的取样。 */
.wa-caption::before{content:"";position:absolute;inset:0;z-index:-2;pointer-events:none;
  background:var(--mat-edge);clip-path:var(--sq-clip,none);filter:var(--sh-3-drop)}
.wa-caption::after{content:"";position:absolute;inset:.5px;z-index:-1;pointer-events:none;
  background:var(--mat-bg);
  -webkit-backdrop-filter:var(--mat-blur);backdrop-filter:var(--mat-blur);
  box-shadow:var(--mat-highlight);
  clip-path:var(--sq-clip-inner,none)}
/* 浮窗里的排版：kicker 11/.14em、标题衬线 26–28/1.35、正文 14.5/1.9（只靠字级和灰度分层） */
.wa-caption h3{font-family:var(--serif);font-synthesis:none;font-size:clamp(26px,1.95vw,28px);
  font-weight:600;line-height:1.35;letter-spacing:.01em;color:var(--ink)}
.wa-caption p{margin-top:var(--sp-2);font-size:14.5px;line-height:1.9;color:var(--ink-secondary);letter-spacing:.01em}
.wa-caption .wa-caption-kicker{display:block;font-family:var(--sans);font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-secondary);margin-bottom:var(--sp-1);font-weight:500}
.wa-caption[data-wa-anchor="gap"] h3{font-size:clamp(24px,1.85vw,26px)}
.wa-review{display:none}
.wa-review-list{list-style:none;margin:18px 0 0;padding:0;border-top:1px solid var(--line)}
.wa-review-list li{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);
  font-size:13.5px;color:var(--ink-body);font-variant-numeric:tabular-nums}
.wa-review-tick{flex:0 0 auto;width:15px;height:15px;border-radius:4px;border:1.5px solid var(--line-strong);position:relative}
.wa-review-tick::after{content:"";position:absolute;left:4.5px;top:1.5px;width:4px;height:8px;
  border-right:1.6px solid var(--ink);border-bottom:1.6px solid var(--ink);transform:rotate(42deg)}
.wa-review-src{color:var(--ink)}
.wa-review-arrow{color:var(--ink-tertiary)}
.wa-review-dst{color:var(--ink);font-weight:600}

/* 角标 = 胶囊（半径 = 高度/2，data-squircle="pill"）+ 材质 + --sh-1。
   单元素同时承担 clip-path / 背景模糊 / 投影（同元素三者共存可行，已实测）；
   内高光与发丝边用 inset 阴影（小尺寸上圆角处的 0.5px 缺口看不出来）。 */
.wa-badge{position:absolute;right:clamp(18px,2.4vw,40px);bottom:var(--sp-3);z-index:3;
  font-size:11px;letter-spacing:.02em;color:var(--ink-secondary);opacity:0;
  transition:opacity var(--dur) var(--ease);pointer-events:none}
.wa-rail{position:absolute;left:50%;bottom:26px;width:132px;height:2px;margin-left:-66px;z-index:3;
  background:var(--line);border-radius:2px;overflow:hidden;pointer-events:none;opacity:0;transition:opacity .4s ease}
.wa-ready .wa-rail{opacity:1}
.wa-rail i{display:block;width:100%;height:100%;background:var(--line-strong);transform:scaleX(0);transform-origin:0 50%}

/* 手机：同一叙事，镜头更紧凑；说明文字放在底部渐隐带里 */
.wa-caption-scrim{position:absolute;left:0;right:0;bottom:0;height:34vh;z-index:1;pointer-events:none;display:none;
  background:linear-gradient(to bottom,rgba(255,255,255,0) 0%,rgba(255,255,255,.86) 42%,rgba(255,255,255,.97) 100%)}

/* 静态说明（减少动态效果 / 无脚本时） */
.wa-story{display:block}
.wa-ready .wa-story{display:none}
.wa-static .wa-story{display:block}
.wa-story .wa-story-inner{width:min(1120px,calc(100% - 112px));margin:64px auto 0;padding-bottom:8px}
.wa-story h3{font-family:var(--serif);font-size:26px;font-weight:600;line-height:1.5}
.wa-story ol{list-style:none;margin:26px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:34px}
.wa-story li{border-top:1px solid var(--line);padding-top:18px}
.wa-story li b{display:block;font-size:16px;font-weight:600;margin-bottom:10px}
.wa-story li p{margin:0;font-size:14px;line-height:1.9;color:var(--ink-secondary)}
.wa-story li .wa-map{display:block;margin-top:10px;font-size:13px;line-height:1.9;color:var(--ink-body);font-variant-numeric:tabular-nums}
.wa-story-note{margin-top:34px;font-size:12px;line-height:1.95;color:var(--ink-secondary);max-width:820px}

.wa-disclosure{margin:clamp(26px,4vw,46px) auto 0;font-size:12.5px;line-height:2;color:var(--ink-secondary);max-width:820px}
@media(max-width:850px){.wa-disclosure{margin-top:24px;font-size:11.5px}}

/* 原资料库界面移到「逐项核对」之后，仍只作真实界面展示 */
.library-figure{max-width:1080px;margin:66px auto 0}.library-figure .screenshot{filter:var(--shot-drop-soft)}
.library-figure figcaption{margin-top:18px}

/* ---------- 窄屏 ---------- */
@media(max-width:1100px){.wa-caption{width:min(300px,30vw)}}
@media(max-width:900px){
  .header-inner{width:calc(100% - 56px);height:86px}
  .cinema{--wa-runway:430vh}
  /* 手机：底部材质卡片（左右各留 16px、底部让出 safe-area；上面两角连续曲率 26、下面 8） */
  .wa-caption{left:var(--sp-2);right:var(--sp-2);width:auto;top:auto;max-width:none;
    bottom:calc(var(--sp-1) + env(safe-area-inset-bottom,0px));
    padding:20px;text-align:left;
    --sq-radius:var(--r-panel) var(--r-panel) 8px 8px}
  .wa-caption h3{font-size:clamp(24px,5vw,28px);line-height:1.35}
  .wa-caption p{margin-top:var(--sp-1);font-size:14.5px;line-height:1.9;max-width:36em}
  .wa-caption .wa-caption-kicker{margin-bottom:var(--sp-1);font-size:11px}
  .wa-caption-scrim{display:none}
  .wa-caption.is-review{top:auto;bottom:0;
    max-height:min(62svh,560px);overflow:hidden;
    padding-bottom:calc(18px + env(safe-area-inset-bottom,0px))}
  /* 复核卡片压在密集列表上：材质再实一点（88% 白），保证小字可读 */
  .wa-caption.is-review::after{background:rgba(255,255,255,.88)}
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]) .wa-caption.is-review::after{background:rgba(28,28,30,.90)}
  }
  :root[data-theme="dark"] .wa-caption.is-review::after{background:rgba(28,28,30,.90)}
  .wa-review{display:block}
  .wa-caption[data-wa-caption="c"]{display:none}
  .wa-review-list{margin-top:12px;padding-bottom:2px}
  .wa-review-list li{font-size:13px;padding:8px 0;gap:8px;flex-wrap:wrap}
  /* 手机上只保留四行，避免卡片底部被视口裁掉 */
  .wa-review-list li:nth-child(n+5){display:none}
  .wa-review-tick{width:14px;height:14px}
  .wa-review-tick::after{left:4px;top:1px;width:4px;height:7px}
  .wa-badge{display:none}
  .wa-rail{bottom:18px;width:96px;margin-left:-48px;opacity:0}
  .wa-ready .wa-rail{opacity:0}
  .wa-story .wa-story-inner{width:calc(100% - 44px);margin-top:48px}
  .wa-story ol{grid-template-columns:1fr;gap:22px}
  .wa-fallback{padding-top:92px}
  .wa-fallback figure{width:calc(100% - 40px)}
  .hero-note{max-width:420px;font-size:11px}
  .library-figure{margin-top:46px}
}
@media(max-width:540px){
  .header-inner{width:calc(100% - 40px);height:78px}
  .hero{padding-top:22px}
  .wa-badge{font-size:10px;gap:6px}
  .wa-badge::before{width:4px;height:4px}
}

/* 减少动态效果 / 无脚本：一切都能正常阅读 */
@media(prefers-reduced-motion:reduce){
  .js .cinema{height:auto}
  .wa-stage{position:static;height:auto;overflow:visible}
  .wa-canvas{display:none}
  .wa-captions,.wa-badge,.wa-rail{display:none}
  .wa-story{display:block}
}
html.no-js .wa-captions,html.no-js .wa-badge,html.no-js .wa-rail{display:none}

/* ==========================================================================
   第三阶段打磨 · 界面呈现修正
   1) 软件截图不裁形状：只按截图自己的四角显示，不再加圆角与描边；
   2) 组件圆角改成连续曲率（squircle），由 assets/squircle.js 算出 --sq-clip；
   3) 品牌图标按图标自带的连续曲率外形显示，不再二次裁圆。
   hero.css 是队友的文件，基础规则与断点覆盖都在那边，这里用「更高 specificity +
   更后的加载顺序」覆盖，不改 hero.css。
   ========================================================================== */

/* ---------- 1. 软件截图：一律不裁形状 ---------- */
html .screenshot,
html .review-figure .screenshot,
html .library-figure .screenshot{border:0;border-radius:0;overflow:visible}

/* ---------- 3. 品牌图标：按图标自己的外形显示 ---------- */
html .brand img{border-radius:0;box-shadow:none;filter:drop-shadow(0 1px 2px rgba(0,0,0,.13))}

/* ---------- 2. 按钮（主 / 次）----------
   主按钮 .primary：深底 + 内高光；次级按钮 .nav-download：浅底 + 发丝边。
   圆角 = --r-control（12px，连续曲率）；发丝面内缩 1px → 内层 11px（内层=外层−内边距）。
   元素本体不裁、不裁影子，负责布局与投影；.sq 承载描边色，.sq::before 内缩 1px 承载填充。
   投影用 --sh-1 的 drop-shadow 写法挂在元素本体上，影子跟着曲率外形走。
   交互：180ms cubic-bezier(.32,.72,0,1)；按下 scale(.98)；悬停只提亮、不减投影。 */
html .primary,html .nav-download{position:relative;isolation:isolate;background:transparent;
  border-color:transparent;box-shadow:none;border-radius:var(--r-control);
  transition:filter var(--dur) var(--ease),transform var(--dur) var(--ease)}
html .primary:hover,html .nav-download:hover{background:transparent;box-shadow:none}
html .primary:active,html .nav-download:active{transform:scale(.98)}
html .primary:focus-visible,html .nav-download:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.primary>.sq,.nav-download>.sq{position:absolute;inset:-1px;margin:0;z-index:-1;display:block;
  pointer-events:none;background:var(--btn-primary-edge);clip-path:var(--sq-clip,none);
  --sq-radius:var(--r-control);
  transition:background var(--dur) var(--ease)}
.primary>.sq::before,.nav-download>.sq::before{content:"";position:absolute;inset:1px;display:block;
  clip-path:var(--sq-clip-inner,none);transition:background var(--dur) var(--ease)}
.primary>.sq::before{background:var(--btn-primary-bg);box-shadow:var(--mat-highlight)}
.nav-download>.sq{background:var(--btn-secondary-edge)}
.nav-download>.sq::before{background:var(--btn-secondary-bg)}
html .primary:hover>.sq::before{background:#2c2f33}
html .nav-download:hover>.sq::before{background:var(--btn-secondary-bg-hover)}
html .primary{filter:var(--sh-1-drop)}
html .nav-download{filter:var(--sh-1-drop)}
/* 脚本没跑（无 JS 或浏览器不支持 clip-path:path()）时退回普通圆角，观感与改动前一致 */
html.no-js .primary>.sq{border-radius:var(--r-control)}
html.no-js .nav-download>.sq{border-radius:var(--r-control)}
/* 高对比度模式：裁切与滤镜都撤掉，交回系统配色 */
@media(forced-colors:active){
  .primary>.sq,.nav-download>.sq{display:none}
  html .primary,html .primary:hover,html .nav-download{background:ButtonFace;border-color:ButtonText;filter:none}
}

/* ---------- 群聊二维码 ---------- */
.groups{display:grid;grid-template-columns:1fr 1.35fr;gap:90px;padding-block:88px 40px}
.groups-intro h2{font-size:clamp(34px,3.6vw,48px)}
.groups-intro>p{color:var(--muted);font-size:16px;line-height:1.9;margin-top:22px;max-width:340px}
.groups-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:44px}
.groups-list li{display:flex;flex-direction:column;gap:0}
.groups-list img{display:block;width:168px;height:168px}
/* 二维码卡片：白底卡片 + --r-card（18）+ --sh-2 + 内边距 18。
   两层伪元素：::before 发丝边层同时承担投影（clip 与 filter 同元素，影子跟随曲率）；
   ::after 内缩 .5px 的白面（内层半径 18−.5，符合「内层=外层−内边距」）。
   二维码图片本身不裁切、不缩放（尺寸仍是 168px，与改动前一致）。 */
.qr-card{position:relative;display:inline-flex;align-self:flex-start;padding:18px;isolation:isolate;
  --sq-radius:var(--r-card)}
.qr-card::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:#fff;clip-path:var(--sq-clip,none)}
.groups-list h3{margin-top:var(--sp-3)}
.groups-list h3{font-size:19px;font-weight:600;margin-top:22px}
.groups-list p{font-size:14.5px;line-height:1.9;color:var(--muted);margin-top:var(--sp-1);max-width:220px}
.groups-note{grid-column:1/-1;font-size:12px;color:var(--muted);line-height:1.9;
  border-top:1px solid var(--line);padding-top:20px;margin-top:6px}
@media(max-width:850px){
  .groups{grid-template-columns:1fr;gap:34px;padding-block:64px 30px}
  .groups-list{gap:30px}
  .groups-list img{width:150px;height:150px}
  .groups-list p{max-width:none}
}
@media(max-width:540px){
  .groups{padding-block:56px 26px}
  .groups-list{grid-template-columns:1fr;gap:34px}
  .groups-list img{width:160px;height:160px}
}

/* ==========================================================================
   首页新增：原稿/结果对照 + 三个小入口（能力与限制 / 授权与价格 / 更新记录）
   ========================================================================== */
.compare .section-intro{margin-bottom:40px}
.compare-pair{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.compare-figure{margin:0;max-width:none}
.compare-figure .screenshot{filter:var(--shot-drop-soft)}
.compare-figure figcaption{margin-top:16px}
.compare-note{margin-top:28px;font-size:12px;line-height:1.9;color:var(--ink-secondary);max-width:62ch}
.section-more{margin-top:20px;font-size:13px}
.section-more a{color:var(--ink-link);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:.5px}
.notice{padding-block:56px 8px;border-top:1px solid var(--line)}
.notice h2{font-size:clamp(22px,2vw,26px);line-height:1.4}
.notice p{margin-top:12px;font-size:15px;line-height:1.9;color:var(--ink-secondary);max-width:60ch}
@media(max-width:900px){.notice{padding-block:44px 4px}}
@media(max-width:540px){.compare-pair{grid-template-columns:1fr;gap:34px}}

/* ---- 响应式（来源 site-auditor HANDOFF-B） ---- */
/* B1. 流程图右侧截图的宽度跳变（实测：加载前 203px → 加载后 766px；手机 170→349）
   根因：hero.css 的 figure{margin:auto} 让 grid item 变 shrink-to-fit，
   图片懒加载完成前按文字宽度撑开，加载后按图片比例撑满 → 滚动到该节时画面「弹开」。
   修法：作为 grid item 的 figure 必须显式拉伸。 */
.workflow-layout > .review-figure {
  margin: 0;
  width: 100%;
  max-width: none;
  justify-self: stretch;
}

/* B2. 手机群聊卡片满宽（实测卡片 196px / 容器 349px，右半边整块留白） */
@media (max-width: 540px) {
  .groups-list { grid-template-columns: 1fr; justify-items: center; }
  .groups-list > li { width: 100%; max-width: 360px; }
  .groups-list .qr-card { width: 100%; display: flex; justify-content: center; }
}

/* ---- 响应式（来源 site-auditor HANDOFF-C） ---- */
/* 实测：手机端 25 处、桌面端也有 6 处 <12px。
   注意两条是「基础规则优先」的情况，必须写出同样的选择器强度：
   cinema.css 的 .wa-caption .wa-caption-kicker{font-size:11px} 与
   hero.css 的 .download-section .download-note{font-size:11px}。
   下面这组不设断点：任何宽度都不低于 12px（桌面原本 12px 的项不受影响）。 */
.hero-note,
#download-status,
.download-section .download-note,
figcaption,
.figure-note,
footer small,
footer .footer-links,
.wa-caption .wa-caption-kicker { font-size: 12px; }

/* 手机端原本 11–11.5px 的两段说明文字 */
@media (max-width: 900px) {
  .wa-disclosure,
  .wa-story-note,
  .wa-fallback .wa-fallback-note { font-size: 12px; }
}
