/* 1. 半透明黑底弹窗（首页、Holi、艺术家页） */
.mask-modal {
  position: fixed; inset: 0; z-index: 2000; background: rgba(0, 0, 0, .4);
  display: flex; align-items: center; justify-content: center;
  animation: vFade .25s ease;
}
.mask-modal img { border-radius: 0; cursor: pointer; max-width: none; animation: vZoom .25s ease; }
@keyframes vFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes vZoom { from { transform: scale(.5); opacity: 0; } to { transform: scale(1); opacity: 1; } }

/* 2. 详情页白底全屏大图 */
.pv-modal { position: fixed; inset: 0; z-index: 2000; background: var(--paper); overflow: auto; animation: vFade .25s ease; }
.pv-main {
  position: relative; z-index: 0; display: flex; flex-direction: column; align-items: center;
  justify-content: center; min-height: 100%; padding-bottom: 20px; background: var(--paper);
}
.pv-title { font-weight: 600; font-size: 1rem; line-height: 1.5rem; color: var(--ink); letter-spacing: .04em; text-align: center; padding: 1.5rem .5rem .75rem; }
.pv-img { padding: 0 40px; }
.pv-img img { display: block; border-radius: 0; max-width: 100%; max-height: calc(100vh - 110px); }
.pv-zones { position: absolute; inset: 0; z-index: 10; display: flex; align-items: center; justify-content: center; }
.pv-zones p { height: 100%; }
.z-prev { width: 30%; cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath d='M20 6 10 16l10 10' fill='none' stroke='%23000' stroke-width='2.5'/%3E%3C/svg%3E") 16 16, w-resize; }
.z-next { width: 30%; cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath d='m12 6 10 10-10 10' fill='none' stroke='%23000' stroke-width='2.5'/%3E%3C/svg%3E") 16 16, e-resize; }
.z-menu { width: 40%; cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath d='M7 9h18M7 16h18M7 23h18' stroke='%23000' stroke-width='2.5'/%3E%3C/svg%3E") 16 16, pointer; }

/* 手机端：图片铺满宽度，左右两条窄区翻页 */
.pv-mobile { position: relative; z-index: 0; display: inline-flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; height: 100vh; overflow: auto; padding-bottom: 20px; }
.pv-mobile img { width: 100%; border-radius: 0; }
.pv-side { position: absolute; z-index: 10; top: 0; width: 40px; height: 100%; display: flex; align-items: center; justify-content: center; }
.pv-side.l { left: 0; } .pv-side.r { right: 0; }
.pv-side svg { width: 20px; height: 20px; }

/* 3. 可缩放拖动的大图预览（通用个人页） */
.img-preview {
  position: fixed; inset: 0; z-index: 2000; background: rgba(0, 0, 0, .5);
  display: flex; align-items: center; justify-content: center; overflow: hidden; user-select: none;
}
.img-preview .ip-box { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.img-preview .ip-img {
  position: relative; max-width: none; border: 14px solid #fff; border-radius: .25rem;
  cursor: move; transition: transform .3s;
}
.img-preview .ip-img.no-anim { transition: none; }
.ip-tools { position: absolute; bottom: 30px; left: 50%; transform: translateX(-50%); display: flex; gap: 8px; background: rgba(0, 0, 0, .5); border-radius: 22px; padding: 6px 14px; }
.ip-tools button { width: 32px; height: 32px; color: #fff; font-size: 18px; line-height: 32px; }
