/* ============================================================
   Deckfolio · 通用移动端优化（对所有 deck 生效）
   竖屏重排（多列→块级流式，杜绝裁切）+ 全屏讲稿 + 手势翻页/读讲稿
   DOM（回主页按钮 / 滑动提示 / 一次性手势提示）由 deck-mobile.js 动态注入
   逻辑说明见 assets/deck-mobile.js
   ============================================================ */

/* 回主页按钮：默认隐藏，仅移动端讲稿页显示（见媒体查询） */
#notes-panel .np-home{display:none;position:absolute;align-items:center;justify-content:center;border:1px solid rgba(var(--paper-rgb),.28);background:none;color:var(--paper);border-radius:50%;cursor:pointer;opacity:.72;transition:opacity .2s,background .2s}
#notes-panel .np-home:active{opacity:1;background:rgba(var(--paper-rgb),.12)}

/* 一次性手势提示 / 底部滑动提示：默认隐藏 */
#m-hint{display:none}
#np-swipehint{display:none;text-align:center;font-family:var(--mono);font-size:10px;letter-spacing:.16em;opacity:.5;padding:1.4vh 0 2.4vh}

@media (max-width:768px){
  /* —— 幻灯竖屏重排：多列改块级流式（避免 grid min-width 撑破/裁切），内容顶对齐 —— */
  .slide{padding:6vh 6.5vw 7.5vh 6.5vw!important;overflow:hidden}
  /* 硬约束帧宽为 viewport 相对值，杜绝祖先 box 计算导致的横向溢出/右侧裁切 */
  .frame{overflow:hidden;min-height:0;width:86vw!important;max-width:86vw!important;margin-left:auto!important;margin-right:auto!important}
  .slide:not(.hero) .frame{justify-content:flex-start!important}
  .chrome{font-size:8.5px!important;letter-spacing:.14em!important}
  .foot{font-size:9px!important;letter-spacing:.1em!important;left:6.5vw!important;right:6.5vw!important;bottom:4vh!important}
  .ghost{display:none!important}
  #hint{display:none!important}
  /* 多列容器 → 块级，子列满宽、自动换行 */
  .split,.grid-2-7-5,.grid-2-6-6,.grid-2-8-4,.pipeline,.row{display:block!important}
  .col,.split>.col,.grid-2-7-5>.col,.frame>.col{width:100%!important;max-width:100%!important}
  .col+.col{margin-top:2.6vh!important}
  /* 关键 1：消除 flex/grid 祖先默认 min-width:auto 造成的横向溢出 */
  .frame,.col,.split,.grid-2-7-5,.grid-2-6-6,.grid-2-8-4,.pipeline,.row,.callout,.stat-card,.rowline{min-width:0!important;max-width:100%!important}
  /* 关键 2：flex 列容器强制拉伸子项——否则 stat-note 等取 max-content 宽度而横向溢出 */
  .col,.stat-card,.step,figure.tile{align-items:stretch!important}
  /* 关键 3：文本元素显式满宽 + 任意换行，杜绝内联 max-width 残留与不换行 */
  /* 文本元素直接用 viewport 相对硬上限，绕开 flex/grid parent 链的宽度 bug */
  .body-zh,.lead,.h-md,.h-sub,.stat-note,.stat-label,.step-desc,.step-title,.callout,.callout .q-big,.callout-src,.rowline .v,.kicker,.h-hero,.h-xl,.h1-zh,.h2-zh,.big-num,.h-sub{max-width:82vw!important;overflow-wrap:anywhere!important;word-break:break-word!important}
  .callout .q-big,.callout-src{max-width:72vw!important}
  .rule.v{display:none!important}
  .pipeline .step{padding:1.3vh 0!important;border:none!important}
  .pipeline .step+.step{border-top:1px solid rgba(127,127,127,.22)!important}
  .row>*+*{margin-top:2.2vh!important}
  [style*="flex-wrap:nowrap"]{flex-wrap:wrap!important;gap:1.4vh 4vw!important;justify-content:center!important}
  /* 标题字号（覆盖内联） */
  .h-hero{font-size:9.2vw!important;line-height:1.18!important}
  .h-xl{font-size:8.4vw!important;line-height:1.22!important}
  .h1-zh{font-size:8.2vw!important;line-height:1.2!important}
  .h2-zh{font-size:7.6vw!important}
  .big-num{font-size:12vw!important}
  .h-md{font-size:4.7vw!important;line-height:1.5!important}
  .h-sub{font-size:4.5vw!important}
  .lead{font-size:4vw!important;line-height:1.6!important}
  .body-zh{font-size:4vw!important;line-height:1.62!important}
  .kicker{font-size:10px!important;letter-spacing:.22em!important;margin-bottom:1.8vh!important}
  .callout{padding:2.4vh 5vw!important}
  .callout .q-big{font-size:5.2vw!important;line-height:1.4!important}
  .callout-src{font-size:3.3vw!important}
  .stat-card{padding:1.6vh 4vw!important}
  .stat-label{font-size:9px!important}
  .stat-note{font-size:3.5vw!important;line-height:1.5!important}
  .stat-nb,.step-nb{font-size:8vw!important}
  .step-title{font-size:5vw!important}
  .step-desc{font-size:3.7vw!important;line-height:1.5!important}
  .rowline{grid-template-columns:auto 1fr!important;gap:1vh 3vw!important;padding:1.7vh 0!important}
  .rowline .k{font-size:4.6vw!important}
  .rowline .v{font-size:3.7vw!important;line-height:1.5!important}
  .rowline .m{display:none!important}
  /* 底部圆点导航：允许换行、缩小，避免溢出 */
  /* 圆点进度条：移动端隐藏（点太多占空间，靠左右滑翻页即可） */
  #nav{display:none!important}

  /* —— 讲稿面板：全屏、大字号，作为手机主界面 —— */
  #notes-panel{width:100vw!important;max-width:none!important;border-left:none!important;box-shadow:none!important}
  #notes-panel .np-head{padding:3vh 7vw 2vh!important}
  #notes-panel .np-title{font-size:5.6vw!important;line-height:1.25!important}
  #notes-panel .np-eyebrow{font-size:9px!important}
  #notes-panel .np-meta{font-size:12px!important}
  #notes-panel .np-body{font-size:16.5px!important;line-height:1.95!important;padding:2.4vh 7vw 14vh!important}
  #notes-panel .np-body .np-lead{font-size:18.5px!important;line-height:1.72!important}
  #notes-panel .np-close{width:38px!important;height:38px!important;font-size:15px!important;top:2.6vh!important;right:5vw!important}
  /* 回主页按钮：仅移动端讲稿页出现，位于 ✕ 左侧 */
  #notes-panel .np-home{display:flex!important;width:38px!important;height:38px!important;top:2.6vh!important;right:calc(5vw + 50px)!important}
  /* 底部滑动提示 */
  #np-swipehint{display:block!important}

  /* 一次性手势提示 */
  #m-hint{display:block;position:fixed;z-index:56;left:50%;top:50%;transform:translate(-50%,-50%);
    max-width:74vw;text-align:center;padding:2.6vh 7vw;border-radius:16px;
    background:rgba(var(--ink-rgb),.94);color:var(--paper);font-family:var(--sans-zh);font-size:15px;line-height:1.9;
    box-shadow:0 12px 40px rgba(0,0,0,.4);opacity:0;pointer-events:none;transition:opacity .4s}
  #m-hint.show{opacity:1}
  #m-hint b{color:var(--accent);font-weight:600}
}
