/* 朋友圈 / Z / 论坛里角色动态的配图（生图第五阶段，js/post-photos.js）。毛玻璃框、扫光、由模糊变清楚：和单聊的 .gp（chat-photo.css）同一套。 */
.pp-host{margin-top:8px;max-width:100%}
.pp-grid{display:grid;gap:4px}
.pp-cell{position:relative;display:block;padding:0;border:0;font:inherit;color:#fff;cursor:pointer;overflow:hidden;isolation:isolate;border-radius:12px;
  background:radial-gradient(120% 80% at 20% 15%,#46587a 0,transparent 60%),radial-gradient(90% 70% at 85% 90%,#5d4a68 0,transparent 62%),#2a3446;
  transition:transform var(--mo-release,200ms) var(--mo-ease-bounce,cubic-bezier(.34,1.56,.64,1));-webkit-tap-highlight-color:transparent}
.pp-cell:active{transform:scale(.97)}
.pp-cell.busy{cursor:default}
.pp-cell.done{cursor:zoom-in}
.pp-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.18);filter:blur(16px) saturate(.8);transition:filter 900ms var(--mo-ease-out,ease-out),transform 900ms var(--mo-ease-out,ease-out)}
.pp-img:not([src]){display:none}
.pp-cell.done .pp-img{transform:none;filter:none}
.pp-cell[data-static] .pp-img,.pp-cell[data-static] .pp-veil{transition:none}
.pp-veil{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:6px;background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.02) 55%,rgba(10,14,22,.18));transition:opacity 420ms ease-out}
.pp-cell.done .pp-veil{opacity:0;pointer-events:none}
.pp-ic{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);box-shadow:inset 0 1px 0 rgba(255,255,255,.4);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.pp-ic svg{width:18px;height:18px}
.pp-lab{font-size:13px;letter-spacing:.04em;text-shadow:0 1px 6px rgba(0,0,0,.25)}
.pp-sub{font-size:11px;opacity:.75;margin-top:-4px}
.pp-sweep{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity 240ms}
.pp-cell.busy .pp-sweep{opacity:1}
.pp-sweep::before{content:"";position:absolute;top:0;bottom:0;width:60%;left:-60%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.28),transparent);animation:ppSweep 1.4s var(--mo-ease-out,ease-out) infinite}
@keyframes ppSweep{to{transform:translateX(270%)}}
.pp-cell.busy .pp-ic{animation:ppBreath 1.4s ease-in-out infinite}
@keyframes ppBreath{50%{transform:scale(.92);opacity:.8}}
.pp-cell.fail{background:#232a36}
.pp-cell.fail .pp-img{filter:blur(16px) saturate(.3) brightness(.7)}
.pp-retry{margin-top:2px;font-size:12px;color:#fff;padding:6px 14px;border-radius:999px;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.4)}
/* 单张：按原比例，最长边限高 */
.pp-grid.pp-single{display:block}
.pp-single .pp-cell{width:min(100%,calc(var(--ar) * 300px),280px);aspect-ratio:var(--ar)}
/* 朋友圈：方块宫格（2、4 张两列，其余三列） */
.pp-moment .pp-grid{max-width:260px}
.pp-moment .pp-grid.n2,.pp-moment .pp-grid.n4{grid-template-columns:repeat(2,1fr)}
.pp-moment .pp-grid.n3,.pp-moment .pp-grid.n5,.pp-moment .pp-grid.n6,.pp-moment .pp-grid.n7,.pp-moment .pp-grid.n8,.pp-moment .pp-grid.n9{grid-template-columns:repeat(3,1fr)}
.pp-moment .pp-grid:not(.pp-single) .pp-cell,.pp-forum .pp-grid:not(.pp-single) .pp-cell{aspect-ratio:1;border-radius:8px}
.pp-moment .pp-grid:not(.pp-single) .pp-ic,.pp-forum .pp-grid:not(.pp-single) .pp-ic{width:30px;height:30px}
.pp-moment .pp-grid:not(.pp-single) .pp-ic svg,.pp-forum .pp-grid:not(.pp-single) .pp-ic svg{width:15px;height:15px}
/* 论坛：2～3 张一排方块 */
.pp-forum .pp-grid{max-width:340px}
.pp-forum .pp-grid.n2{grid-template-columns:repeat(2,1fr)}
.pp-forum .pp-grid.n3{grid-template-columns:repeat(3,1fr)}
/* Z：X 的排法，2 张左右各半、3 张左大右二、4 张 2×2 */
.pp-z .pp-grid:not(.pp-single){aspect-ratio:16/9;gap:2px;border-radius:16px;overflow:hidden}
.pp-z .pp-grid:not(.pp-single) .pp-cell{border-radius:0;width:auto;aspect-ratio:auto}
.pp-z .pp-grid.n2{grid-template-columns:1fr 1fr}
.pp-z .pp-grid.n3{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}
.pp-z .pp-grid.n3 .pp-cell:first-child{grid-row:1 / span 2}
.pp-z .pp-grid.n4{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}
.pp-z .pp-single .pp-cell{border-radius:16px}
/* 只要文字 / 到上限：单张一张文字卡，多张合成一张卡，列出各张描述 */
.pp-text{display:flex;gap:10px;align-items:flex-start;max-width:min(300px,100%);padding:11px 14px;margin-top:4px;border-radius:14px;background:rgba(255,255,255,.62);border:1px solid rgba(60,70,90,.1);color:inherit}
.pp-grid + .pp-text{margin-top:6px}
.pp-tic{flex:none;width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:rgba(255,255,255,.7);color:var(--accent-text,#4a6fa5)}
.pp-tic svg{width:17px;height:17px}
.pp-text b{display:block;font-size:12px;font-weight:600;opacity:.6;margin-bottom:2px;letter-spacing:.06em}
.pp-text span{display:block;font-size:14px;line-height:1.55}
.pp-text em{display:block;font-style:normal;font-size:11px;opacity:.6;margin-top:6px}
:root[data-theme="dark"] .pp-text{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.12)}
:root[data-theme="dark"] .pp-tic{background:rgba(255,255,255,.1)}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) .pp-text{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.12)}:root:not([data-theme="light"]) .pp-tic{background:rgba(255,255,255,.1)}}
/* 大图：原比例，左右滑 */
.pp-view{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;overflow:hidden;touch-action:pan-y}
.pp-view-bg{position:absolute;inset:0;background:#0e1219;animation:moFade var(--mo-base,200ms) ease-out backwards}
.pp-view-track{position:relative;display:flex;width:100%;height:100%;transition:transform 280ms cubic-bezier(.22,.9,.3,1);touch-action:pan-y;user-select:none}
.pp-view-slide{flex:none;width:100%;height:100%;display:grid;place-items:center;padding:56px 14px}
.pp-view-slide img{max-width:100%;max-height:100%;aspect-ratio:var(--ar);object-fit:contain;border-radius:14px;box-shadow:0 20px 50px rgba(0,0,0,.4);-webkit-user-drag:none;pointer-events:none}
.pp-view-x{position:absolute;top:calc(env(safe-area-inset-top,0px) + 12px);right:14px;width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.14);color:#fff;font-size:15px;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.pp-view-nav{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.14);color:#fff;font-size:22px;line-height:1;cursor:pointer}
.pp-view-nav.prev{left:10px}.pp-view-nav.next{right:10px}
.pp-view-nav[hidden]{display:none}
.pp-view-cap{position:absolute;left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 18px);text-align:center;color:#e8edf4;pointer-events:none}
.pp-view-cap i{font-style:normal;font-size:12px;opacity:.6}
.pp-view.closing{transition:opacity 220ms ease-in;opacity:0}
/* Z：用户自己发的多张图（存在本机图片库，js/apps/z.js 按 data-img 填背景） */
.pp-cell[data-img]{background-size:cover;background-position:center;cursor:default}
/* 论坛楼层里的图小一点（楼层本身窄） */
.fm-floor .pp-single .pp-cell{width:min(100%,calc(var(--ar) * 200px),220px)}
