/* ============================================================
   灵睿 LinkSight 产品展示页，滚动动效原型 v1.3（设计稿，非实现）
   主线：每月出账不再手填（出账链 → 催缴单）+ 数据录完分析就有（经营分析）。
   v1.3：产品名与标志换成 灵睿 LinkSight；出账链五道工序；分析层 20 屏；
   新增「手机上，也是同一套账」「不替你下结论」「每天打开的样子」三章；底座数字按 2026-09-20 实测重写。
   全程黑底；格 #1d1d1f，不描边、不投影、不发光；系统字体 Semibold 承担层级。
   香槟金只给按钮、链接、进行中状态、图表尾点，永不上标题、数字、发丝线、图标。
   圆角：格 / 舞台 / 纸 28px；内嵌画面 18px；按钮 / 标签 胶囊。
   ============================================================ */
:root{
  --bg:#000000; --tile:#1d1d1f; --tile-2:#2c2c2e;
  --fg:#f5f5f7; --fg-2:#a1a1a6; --fg-3:#86868b;
  --hair:rgba(255,255,255,.14); --hair-ctl:rgba(255,255,255,.36);
  --accent:#C9B790; --accent-hover:#D4C3A0; --on-accent:#1D1D1F; --link:#D6C7A1;
  --warn:#FF6E57;
  --r-tile:28px; --r-inner:18px;
  /* 拉丁面必须排在 CJK 面前面：CSS 回退是按字符做的，YaHei/PingFang 自带拉丁字形，
     排前面就会把 LinkSight / Excel / 10,134 全吃掉。实测 60px 下 YaHei 的拉丁比
     Segoe UI 宽 8.9%（830.89 vs 763.18），那套字形是为配汉字做的，不是为独立读的。 */
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Helvetica,Arial,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--fg);font:17px/1.55 var(--font);-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
h1,h2,h3{margin:0;font-weight:600;text-wrap:balance}
/* 中文没有词边界，text-wrap:balance 为了把两行凑齐会从词中间断开 ——
   首屏实测断成「每月催缴单，系 / 统自动算出来。」。把标题按句读切成不折断的片段，
   断行就只能发生在标点处。加在需要的标题上，不是全局。 */
.nb{white-space:nowrap}
p{margin:0;text-wrap:pretty}
ul{margin:0;padding:0;list-style:none}
button{font:inherit;color:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
svg.lucide{width:24px;height:24px;stroke-width:1.5;color:var(--fg-2);flex:0 0 auto}

/* ---- 字阶 ---- */
.display{font-size:clamp(44px,6vw,80px);line-height:1.06;letter-spacing:-.022em}
h2{font-size:clamp(32px,4.1vw,56px);line-height:1.08;letter-spacing:-.018em}
h3{font-size:clamp(19px,1.5vw,24px);line-height:1.3;letter-spacing:-.005em}
.eyebrow{font-size:clamp(13px,1vw,15px);font-weight:600;letter-spacing:.06em;color:var(--fg-2);margin-bottom:10px}
.intro{font-size:clamp(17px,1.35vw,21px);line-height:1.5;color:var(--fg-2);max-width:34em}
.caption{font-size:14px;line-height:1.55;letter-spacing:.003em;color:var(--fg-3);max-width:38em}
.footnote{font-size:12px;line-height:1.6;letter-spacing:.008em;color:var(--fg-3);max-width:38em}
.num{font-variant-numeric:tabular-nums}
.tag{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:980px;background:var(--tile-2);color:var(--fg-2);font-size:11px;font-weight:600;letter-spacing:.014em} /* 三级灰压次级格只有 3.85:1，角标用次级灰 5.4:1 */

/* ---- 按钮 / 链接 ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;height:44px;padding:0 22px;border-radius:980px;font-size:17px;font-weight:400;white-space:nowrap;border:0;background:var(--accent);color:var(--on-accent);transition:background-color .2s ease,transform .1s ease}
.btn:hover{background:var(--accent-hover)}
.btn:active{transform:scale(.97)}
.btn.sm{height:28px;padding:0 12px;font-size:13px}
.btn.lg{height:52px;padding:0 30px;font-size:19px}
.link{display:inline-flex;align-items:center;gap:1px;color:var(--link);font-size:17px;padding:0 4px;height:44px}
.link svg{width:18px;height:18px;color:inherit;stroke-width:2}
.link:hover{text-decoration:underline;text-underline-offset:3px}
.cta-row{display:flex;gap:18px;flex-wrap:wrap;align-items:center;justify-content:center}

/* ---- 局部导航 ---- */
/* 滚动边缘用渐变遮罩，不用横在空处的 1px 硬线（Apple §12 scroll edge effects）。
   首屏没滚动时导航下面是 hero 的纯黑 padding，那条线下面什么都没有。 */
.nav{position:fixed;inset:0 0 auto 0;height:52px;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(16px,3vw,40px);background:color-mix(in srgb,var(--bg) 78%,transparent);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%)}
.nav-edge{position:fixed;top:52px;left:0;right:0;height:22px;z-index:49;opacity:0;
  background:linear-gradient(var(--bg),transparent);transition:opacity .25s;pointer-events:none}
.brand{display:flex;align-items:center;gap:9px;font-size:19px;font-weight:600;letter-spacing:-.01em}
.brand svg{width:20px;height:20px}
.nav-links{display:flex;gap:clamp(16px,2.2vw,32px);font-size:13px;letter-spacing:.006em;color:var(--fg-2)}
.nav-links a{transition:color .2s,transform .1s ease}
/* 按下去就给反馈（Apple §1）。复用按钮已有的 .97/100ms，不新增颜色不新增描边 */
.link,.segc button{transition:transform .1s ease}
.link:active,.segc button:active,.nav-links a:active{transform:scale(.97)}
.nav-links a:hover,.nav-links a.on{color:var(--fg)}

/* ---- 章节骨架 ---- */
.chapter{position:relative;padding:clamp(90px,13vh,160px) clamp(20px,6vw,96px)}
.ch-head{max-width:980px;margin:0 auto clamp(44px,7vh,88px);text-align:center}
.ch-head .intro{margin:18px auto 0}
.pinsec{padding:0}
.pinsec .pin-inner{position:relative;min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:84px clamp(20px,6vw,96px) 40px}
.split{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(28px,5vw,72px);align-items:center;width:100%}

/* ---- 舞台与素材位 ---- */
.stage{position:relative;border-radius:var(--r-tile);background:var(--tile);overflow:hidden}
.slot{position:relative;width:100%;height:100%;min-height:120px;border-radius:inherit;background:var(--tile);overflow:hidden}
/* data-note 是制作备注（"截图 · 月度台账，桌面 1440×900"这种），不是给访客看的文案。
   原来只要素材没挂上就直接当正文渲染出来 —— 22/23/24 三个格子在线上真的显示着。
   现在只在 ?notes=1 下显示，平时空格子就是一块底色。 */
body.notes .slot::after{content:attr(data-note);position:absolute;left:22px;bottom:18px;right:22px;font-size:12px;line-height:1.5;color:var(--fg-3)}
.slot.grid-tex{background:
  repeating-linear-gradient(90deg,transparent 0 88px,color-mix(in srgb,var(--fg) 7%,transparent) 88px 89px),
  repeating-linear-gradient(0deg,transparent 0 25px,color-mix(in srgb,var(--fg) 7%,transparent) 25px 26px),
  var(--tile)}
.view{position:absolute;inset:0}
/* scrub 片是白底界面，舞台跟着白 —— 黑格里嵌白画面会有一圈亮边 */
#dashboard .dash-stage,#dashboard .view{background:#fff}
.view .tag{position:absolute;top:16px;right:16px;z-index:2}

/* ============ 0 · 首屏 ============ */
.hero{position:relative;min-height:100svh;padding:120px clamp(20px,6vw,96px) 0;display:flex;flex-direction:column;align-items:center;text-align:center}
.hero-copy{display:flex;flex-direction:column;align-items:center;gap:22px;max-width:880px}
.hero-copy .intro{margin:0 auto}
.hero-stage{max-width:1200px;width:100%;margin:clamp(44px,8vh,80px) auto 0;aspect-ratio:16/8;border-radius:var(--r-tile) var(--r-tile) 0 0}

/* ============ 1 · 以前长这样（大数字 + 叠纸）============ */
.figs{display:grid;grid-template-columns:repeat(3,auto);gap:clamp(24px,5vw,72px);justify-content:center;margin:0 auto clamp(40px,6vh,64px)}
.figs div{display:flex;flex-direction:column-reverse;gap:6px;align-items:center} /* DOM 里 dt 在前 dd 在后（合法顺序），视觉上数字在上 */
.figs dd{margin:0;font-size:clamp(44px,5vw,76px);font-weight:600;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.figs dt{font-size:15px;color:var(--fg-2)}
.stack{position:relative}
/* 三张纸的 sticky 视差已换成一支渲染视频，这里只剩一个常规块 */
.sheet{display:grid;place-items:center;padding:0 clamp(20px,6vw,96px) 40px}
.paper{width:min(880px,90vw);aspect-ratio:16/10;background:var(--tile);border-radius:var(--r-tile);overflow:hidden}

/* ============ 2 · 出账链（横向平移）============ */
/* 出账链：五屏横滚已换成一支渲染视频（#chain 的 data-id="D"），
   这一节不再钉住横移，改成常规一屏：视频 + 五段静态说明。 */
.pan-wrap{position:relative;padding:0 clamp(20px,6vw,96px) 40px;display:flex;flex-direction:column;align-items:center;gap:34px}
.chain-stage{max-width:1200px;width:100%;aspect-ratio:2;border-radius:var(--r-tile)}
.chain-steps{list-style:none;margin:0;padding:0;max-width:1200px;width:100%;display:grid;grid-template-columns:repeat(5,1fr);gap:22px}
.chain-steps li{border-top:1px solid var(--hair);padding-top:14px}
.chain-steps h3{margin:0 0 6px;font-size:16px;font-weight:600}
.chain-steps p{margin:0;color:var(--fg-2);font-size:14px;line-height:1.55}
@media (max-width:900px){
  .chain-steps{grid-template-columns:repeat(2,1fr)}
  .chain-stage{aspect-ratio:16/11}
}
/* ============ 3 · 催缴单（钉住换画面）============ */
#bill .screen{aspect-ratio:16/10}
#bill .ch-head{margin-bottom:26px}
/* 四句话是并排四栏（见下面 .bill-caps），不是叠在一起轮播 ——
   原来这里留着 position:absolute;inset:0 的旧叠放写法，下面改成 grid 后没人把它撤掉，
   四条字就全压在同一格里糊成一团。 */
#bill .cap{display:flex;flex-direction:column;gap:12px}
#bill .cap p{color:var(--fg-2);font-size:clamp(16px,1.2vw,19px);line-height:1.45}

/* ============ 5 · 经营分析（钉住 + 分段控件当进度）============ */
/* 钉住的只有段控 + 舞台 + 那句话；标题在上面，滚到位之前就读完了。
   原来标题也在钉住块里，1440×900 实测整块 1094 高，比视口高出 194px。 */
#dashboard{padding:clamp(70px,10vh,120px) clamp(20px,6vw,96px) 0}
#dashboard .ch-head{margin:0 auto clamp(24px,4vh,44px)}
#dashboard .pin-inner{align-items:center;min-height:auto;padding:0}
#dashboard .ch-head{margin-bottom:28px}
.segc{display:inline-grid;grid-auto-flow:column;grid-auto-columns:1fr;position:relative;padding:3px;border-radius:980px;background:var(--tile);--n:2}
/* font-weight:500 在 Windows 上是死声明（实测 w500 与 w400 同宽 830.89px），删掉。
   白字的过渡对齐药丸那条曲线；原来 250ms 对 380ms，点下去白字先到、药丸后到，
   中间 130ms 白字浮在灰底上。 */
.segc button{position:relative;z-index:1;height:38px;padding:0 22px;border:0;background:transparent;border-radius:980px;font-size:15px;color:var(--fg-2);white-space:nowrap;transition:color .38s cubic-bezier(.32,.72,0,1),transform .1s ease}
.segc.prog button{transition:color .1s linear,transform .1s ease}
.segc button[aria-selected="true"]{color:var(--fg)}
.segc .thumb{position:absolute;top:3px;bottom:3px;left:3px;width:calc((100% - 6px)/var(--n));border-radius:980px;background:var(--tile-2);transition:transform .38s cubic-bezier(.32,.72,0,1)}
.segc[data-i="1"] .thumb{transform:translateX(100%)}
.segc[data-i="2"] .thumb{transform:translateX(200%)}
.segc[data-i="3"] .thumb{transform:translateX(300%)}
.segc.prog .thumb{transition:none}
/* 舞台按视口高度吃满再反推宽度：这一章是钉住的，高度是硬约束，
   而宽度决定产品界面的显示倍率 —— 窄了就是 #pool 犯过的那个「糊」。
   片是 2560×1600（16:10），这里同比。 */
.dash-stage{height:min(calc(100vh - 200px),900px);aspect-ratio:2560/1600;width:auto;max-width:100%;margin:22px auto 0}
/* 不钉住的片：宽度优先吃满，高度由片自己的比例定。窄了就是 #pool 犯过的「糊」 */
.film-stage{width:min(1440px,100%);aspect-ratio:2560/1600;margin:0 auto;background:#fff}
.film-stage .slot{background:#fff}
.film-stage video{object-fit:contain;background:#fff}
/* 催缴单那四段说明移到片下面，排成一行 */
#bill .bill-caps{max-width:1440px;margin:clamp(28px,4vh,48px) auto 0}
#bill .caps{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,2.5vw,40px)}
@media (max-width:899px){ #bill .caps{grid-template-columns:1fr;gap:20px} }
.dash-lines{position:relative;height:30px;margin-top:16px;width:min(1440px,100%)}
.dash-lines p{position:absolute;inset:0;text-align:center;color:var(--fg-2);font-size:17px}

/* ============ 6 · 专题（12 格 Bento）============ */
.bento{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(3,300px);grid-template-areas:"an an fl ex" "pv pv be pl" "bu ro el ch";gap:14px}
.tile{position:relative;background:var(--tile);border-radius:var(--r-tile);padding:24px;display:flex;flex-direction:column;gap:12px;overflow:hidden}
.tile .slot{flex:1;border-radius:var(--r-inner);min-height:0;background:var(--tile-2)}
.tile .tile-h{display:flex;align-items:center;gap:10px}
.tile h3{font-size:clamp(17px,1.25vw,20px)}
/* 章节开头三种形状（2026-09-23）：原来 11 章共用 .ch-head 一条居中规则，
   连着读像同一张幻灯片重复 11 次。默认居中留给「宣告」型的章，
   流程章走 --left，内容多的章走 --split（标题左、引言右，手机档落回一列）。 */
.ch-head--left{max-width:1200px;text-align:left}
.ch-head--left .intro{margin:18px 0 0}
.ch-head--split{max-width:1200px;text-align:left;display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:end}
.ch-head--split h2{margin:0}
.ch-head--split .intro{margin:0;max-width:none;padding-bottom:.4em}
@media (max-width:899px){
  .ch-head--split{grid-template-columns:1fr;gap:14px}
  .ch-head--split .intro{padding-bottom:0}
}
/* 专题小格补的那一句：格子本来 justify-content:flex-end、图标 margin-bottom:auto，
   236px 里只有图标和标题，加一句不用改行高 */
.tile.sm p{margin:6px 0 0;font-size:13.5px;line-height:1.5;color:var(--fg-2)}
/* 窄屏 grid-auto-rows 交给内容定高时，slot 是 flex:1+min-height:0 会被压没，给个下限 */
@media (max-width:900px){ .tile .slot{min-height:120px} }

.an{grid-area:an}.fl{grid-area:fl}.ex{grid-area:ex}.pv{grid-area:pv}.be{grid-area:be}.pl{grid-area:pl}.bu{grid-area:bu}.ro{grid-area:ro}.el{grid-area:el}.ch{grid-area:ch}

/* ============ 7 · 公摊引擎（经过式揩开）============ */
/* 揩开这一章改成一支滚动驱动的渲染片，舞台吃满一行。
   原来塞在 1.25fr 的分栏里只有 ~679 CSS px 宽，产品界面 1120 挤进去是 0.61× ——
   那正是反复被指出的「糊」。1600 的舞台让界面以 1.2× 放大出现，字反而更实。 */
#pool .pool-pin{max-width:1600px;margin:0 auto}
#pool .lede{max-width:820px;margin:0 auto clamp(28px,4vh,48px);text-align:center}
#pool .scrub{max-width:1600px;margin:0 auto;aspect-ratio:2400/960;background:#fff}
#pool .scrub .slot{background:#fff}
#pool .scrub video{object-fit:contain;background:#fff}
#pool h2{text-align:left}
#pool .intro{margin-top:18px}
#pool .figs{grid-template-columns:repeat(2,auto);margin:clamp(32px,5vh,56px) auto 0}
#pool .figs dd{font-size:clamp(40px,4.2vw,64px)}
#pool .figs dt{font-size:14px;color:var(--fg-3)}

/* ============ 8 · 账簿与报表 ============ */
.co-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px;justify-content:center}
.co{height:32px;padding:0 14px;border-radius:980px;background:var(--tile);display:inline-flex;align-items:center;font-size:13.5px;color:var(--fg-2)}
.co.on{background:var(--fg);color:var(--bg);font-weight:600}

/* ============ 9 · 协作（双窗三态，一次性播放）============ */
.checks{max-width:1200px;margin:34px auto 0;display:flex;gap:clamp(20px,4vw,48px);flex-wrap:wrap;justify-content:center}
.checks li{display:inline-flex;align-items:center;gap:8px;font-size:15px;color:var(--fg-2)}
.checks svg{width:18px;height:18px;color:var(--fg);stroke-width:2.2}

/* ============ 5.5 · 不替你下结论（单块宽格）============ */

/* ============ 10 · 手机与平板（设备并排，按真实像素比例）============ */
.devices{max-width:1200px;margin:0 auto;display:flex;align-items:flex-end;gap:clamp(12px,2vw,26px)}
.dev{margin:0;min-width:0;display:flex;flex-direction:column;gap:10px}
.dev .stage{width:100%}
.dev figcaption{font-size:13px;color:var(--fg-3);text-align:center}
.facts{max-width:1200px;margin:clamp(34px,5vh,58px) auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,46px)}
.facts h3{font-size:19px;margin-bottom:8px}
.facts p{color:var(--fg-2);font-size:15px}
#mobile .footnote{max-width:1200px;margin:22px auto 0}

/* ============ 13 · 底座 ============ */
.stats{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.stat{padding:28px;border-radius:var(--r-tile);background:var(--tile);display:flex;flex-direction:column;gap:10px;min-height:200px;justify-content:flex-end}
.stat .num{font-size:clamp(44px,4.6vw,68px);font-weight:600;line-height:1;letter-spacing:-.02em}
.stat .num sup{font-size:.5em;vertical-align:top;margin-left:2px}
.stat p{color:var(--fg-2);font-size:15px;line-height:1.45}
.stat.text{justify-content:center}
.stat.text p{color:var(--fg);font-size:16px}

/* ============ 12 · CTA + 页脚 ============ */
footer{padding:28px clamp(20px,6vw,96px) 40px;border-top:1px solid var(--hair);display:flex;flex-direction:column;gap:10px;font-size:12px;color:var(--fg-3)}
footer .row{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
footer .brand{font-size:14px;color:var(--fg-2)}

/* ---- 静态模式（移动端 / 减少动态效果 / 无脚本）：所有终态直接可读 ---- */
.static .pinsec .pin-inner{min-height:auto;padding-top:80px;padding-bottom:60px}

.static #bill .caps{display:flex;flex-direction:column;gap:28px}
.static .view{opacity:0!important}
.static .view:first-child{opacity:1!important}
.static #dashboard .view,.static #dashboard .view:first-child,.static .dash-lines p,.static .dash-lines p:first-child{opacity:0!important}
.static #dashboard .view.on,.static .dash-lines p.on{opacity:1!important}
.static .segc.prog .thumb{transition:transform .38s cubic-bezier(.32,.72,0,1)}
/* 协作章不播放的两档（减少动态效果 / 无脚本）直接呈现播放终态；只作用于 .panes，不碰组件表 */
.final .who.other,.final .cnt.other{opacity:1}
.final #pane-a .who.me,.final #pane-b .who.other{box-shadow:0 0 0 2px var(--accent)}
.final .panes .lockbtn .s0{opacity:0}
.final #pane-a .s1{opacity:1}
.final #pane-a .lockbtn{border-color:var(--accent);color:var(--accent)}
.final #pane-b .s2{opacity:1}
.final .pane .toast{opacity:1;transform:none}
.static .hero-copy,.static .hero-stage{opacity:1!important;transform:none!important}

@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto} .btn,.segc .thumb{transition:none} }
@media (prefers-reduced-transparency:reduce){ .nav{background:var(--bg);-webkit-backdrop-filter:none;backdrop-filter:none} }
/* 第三个信号。Apple 那条的「加描边」与本站拍板的「格不描边」冲突，不照抄；
   能做且不违约的是把次级灰和发丝线各提一档。 */
@media (prefers-contrast:more){ :root{--fg-2:#c7c7cc;--fg-3:#a1a1a6;--hair:rgba(255,255,255,.28);--hair-ctl:rgba(255,255,255,.55)} }

@media (max-width:899px){
  .nav-links{display:none}
  .hero{padding-top:100px}
  .hero-stage{aspect-ratio:16/11}
  .split{grid-template-columns:1fr}
  .figs{grid-template-columns:repeat(3,1fr);gap:16px}
  .bento{grid-template-columns:1fr 1fr;grid-template-rows:none;grid-auto-rows:minmax(150px,auto);grid-template-areas:"an an" "fl ex" "pv pv" "be pl" "bu ro" "el ch"}
  .tile.an,.tile.pv{min-height:260px}
  .stats{grid-template-columns:1fr 1fr}
  .devices{flex-direction:column;align-items:flex-start;gap:22px}
  .dev{flex:0 0 auto!important;width:100%}
  .dev[style*="768"]{width:58%}
  .dev[style*="390"]{width:34%}
  .facts{grid-template-columns:1fr}
  .paper{aspect-ratio:auto;min-height:56vh}
  .segc button{padding:0 14px;font-size:13px}
}

/* ---- 素材：到位就盖住说明位，没到位就还是那块带说明的格 ---- */
/* play() 被浏览器拒掉时（后台标签、低电量、省流量）唯一的入口。
   平时不存在，只有 .paused 才显形；金色落在钮上，符合硬约束。 */
.slot.paused::before{content:"";position:absolute;left:50%;top:50%;width:56px;height:56px;
  margin:-28px 0 0 -28px;border-radius:50%;background:var(--accent);z-index:3;cursor:pointer}
.slot.paused::after{content:"";position:absolute;left:50%;top:50%;width:0;height:0;
  margin:-11px 0 0 -6px;border-left:18px solid var(--on-accent);
  border-top:11px solid transparent;border-bottom:11px solid transparent;z-index:4;
  pointer-events:none;display:block}
.slot > img,.slot > video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}
.paper .slot > img{object-fit:contain;background:#fff}
body.notes .slot.has-media::after{display:none}

/* ---- 联系方式（尾屏，零后端）---- */
