/* OneBlog album category layout */
.album-grid-wrapper{padding:1.2rem 1.2rem 0;}
.album-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;}
.album-item{position:relative;border-radius:10px;overflow:hidden;background:var(--card-bg,rgba(255,255,255,.6));backdrop-filter:blur(6px);}
.album-item .album-cover{display:block;position:relative;height:0;padding-bottom:70%;overflow:hidden;color:#fff;text-decoration:none;}
.album-img{position:absolute;left:0;top:0;width:100%;height:100%;background-size:cover;background-position:center;filter:brightness(.92);transition:.5s;}
.album-img.noimg{display:flex;align-items:center;justify-content:center;font-size:12px;color:#999;background:#f2f2f2;}
.album-item:hover .album-img{transform:scale(1.06);filter:brightness(.8);}
.album-title{position:absolute;left:0;bottom:0;width:100%;padding:.6rem .7rem;background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.55) 90%);box-sizing:border-box;}
.album-title h2{margin:0;font-size:14px;font-weight:500;line-height:1.3;color:#fff;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
@media (min-width: 860px){
  .album-grid-wrapper{padding:2rem 2rem 0;}
  .album-grid{gap:18px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));}
  .album-title h2{font-size:15px;}
}
/* 瀑布流文章内图片布局：在 post 页面中 album 分类使用 */
.album-photos-masonry{column-count:3;column-gap:14px;padding:0;margin:0;}
.album-photos-masonry .masonry-item{break-inside:avoid;margin:0 0 6px;position:relative;overflow:hidden;border-radius:0;background:transparent;}
.album-photos-masonry .masonry-item a,.album-photos-masonry .masonry-item img{border-radius:0;}
.album-photos-masonry .masonry-item a{display:block;}
.album-photos-masonry img{width:100%;height:auto;display:block;transition:.4s;}
.album-photos-masonry img{will-change:transform,filter;} 
/* 基础 hover 回退：所有设备（即使不支持 hover 媒体查询判定或浏览器识别异常）都至少有轻微放大与亮度反馈 */
.album-photos-masonry .masonry-item:hover img{transform:scale(1.045);filter:brightness(1.04) saturate(108%);} 
html.night .album-photos-masonry .masonry-item:hover img{filter:brightness(1.08) saturate(112%);} 
/* 旧的简单放大替换为更丰富的交互（仅支持 hover 的设备执行） */
@media (hover:hover){
  .album-photos-masonry .masonry-item{position:relative;}
  .album-photos-masonry .masonry-item:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 60%,rgba(255,255,255,.08),rgba(0,0,0,0) 70%);opacity:0;pointer-events:none;transition:.55s ease;}
  .album-photos-masonry .masonry-item:hover:before{opacity:1;}
  .album-photos-masonry .masonry-item img{transition:transform .75s cubic-bezier(.19,1,.22,1),filter .55s ease, box-shadow .6s ease;}
  /* 高级 hover（支持真实鼠标悬停时增强效果，覆盖基础回退） */
  .album-photos-masonry .masonry-item:hover img{transform:scale(1.095) translateY(-4px) rotate(.35deg);filter:brightness(1.07) saturate(118%);box-shadow:0 14px 34px -14px rgba(0,0,0,.46);} 
  html.night .album-photos-masonry .masonry-item:hover img{filter:brightness(1.12) saturate(122%);} 
  .album-photos-masonry .masonry-item:hover img{transition:transform .9s cubic-bezier(.16,.84,.24,1),filter .55s ease, box-shadow .6s ease;}
  /* 序号标签 */
  .album-photos-masonry .masonry-link{display:block;position:relative;}
  .album-photos-masonry .masonry-idx{position:absolute;left:10px;top:10px;font-size:12px;font-weight:600;color:#fff;background:rgba(0,0,0,.38);padding:4px 8px;border-radius:20px;line-height:1;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transform:translateY(-6px);transition:.45s cubic-bezier(.4,0,.2,1);letter-spacing:.5px;}
  .album-photos-masonry .masonry-item:hover .masonry-idx{opacity:1;transform:translateY(0);} 
  html.night .album-photos-masonry .masonry-idx{background:rgba(0,0,0,.55);} 
}
@media (max-width:960px){.album-photos-masonry{column-count:2;}}
@media (max-width:600px){.album-photos-masonry{column-count:2;column-gap:6px;} .album-photos-masonry .masonry-item{margin-bottom:6px;}}
/* 移动端隐藏序号标签，减少布局 & 重绘 */
@media (max-width:860px){.album-photos-masonry .masonry-idx{display:none !important;}}

/* 瀑布流懒加载渐进效果 */
.album-photos-masonry img.lazy-load{filter:blur(12px) saturate(110%);opacity:0;transform:scale(.96);transition:filter .6s ease, opacity .55s ease, transform .6s cubic-bezier(.19,1,.22,1);} 
@media (max-width:860px){.album-photos-masonry img.lazy-load{filter:blur(8px) saturate(108%);}} 
.album-photos-masonry img.lazy-load.loaded{filter:blur(0) saturate(100%);opacity:1;transform:scale(1);} 

/* 横向滚动/多行自适应相册卡片布局 */
.album-flex-wrapper{padding:1.2rem 1.2rem 0;}
.album-flex{display:flex;flex-wrap:wrap;gap:16px;}
.album-card{width:calc(25% - 12px);box-sizing:border-box;position:relative;background:var(--card-bg,rgba(255,255,255,.55));backdrop-filter:blur(4px);border-radius:14px;overflow:hidden;transition:.35s;border:1px solid rgba(0,0,0,0.04);}
.album-card{opacity:0;transform:translateY(24px);animation:albumFadeUp .6s ease forwards;}
.album-card:nth-child(1){animation-delay:.03s}
.album-card:nth-child(2){animation-delay:.06s}
.album-card:nth-child(3){animation-delay:.09s}
.album-card:nth-child(4){animation-delay:.12s}
.album-card:hover{transform:translateY(-6px);box-shadow:0 14px 30px -8px rgba(0,0,0,.18);} 
.album-card:hover .album-thumb{transform:scale(1.06);} 
.album-card:hover .album-overlay{transform:translateY(-6px);} 
.album-thumb{transition:transform .6s cubic-bezier(.19,1,.22,1);} 
.album-overlay{transition:transform .45s ease, background .45s ease;} 
.album-card-inner{display:flex;flex-direction:column;text-decoration:none;color:inherit;height:100%;}
.album-thumb{position:relative;width:100%;background:#f3f3f3 center/cover no-repeat;overflow:hidden;display:block;}
.album-thumb.lazy-load{filter:none !important;-webkit-filter:none !important;}
.album-thumb-inner{position:absolute;left:0;top:0;width:100%;height:100%;}
.album-thumb.loaded{filter:none;}
.album-thumb.lazy-load{opacity:1;}
.album-thumb.noimg{display:flex;align-items:center;justify-content:center;font-size:12px;color:#999;}
.album-thumb:after{content:'';position:absolute;left:0;top:0;width:100%;height:100%;background:linear-gradient(180deg,rgba(0,0,0,0) 25%,rgba(0,0,0,.38) 85%);opacity:.6;transition:.45s ease;pointer-events:none;}
/* PC端仅 hover 加深，默认保持较浅透明度方便看清 meta */
.album-card:hover .album-thumb:after{opacity:.95;background:linear-gradient(180deg,rgba(0,0,0,0) 10%,rgba(0,0,0,.72) 92%);} 
.album-card-title{display:none;}
.album-overlay{position:absolute;left:0;bottom:0;width:100%;padding:.55rem .6rem .65rem;background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.62) 95%);box-sizing:border-box;display:flex;align-items:flex-end;min-height:45%;will-change:transform;z-index:2;}
.album-overlay{flex-direction:column;justify-content:flex-end;}
.album-meta{width:100%;display:flex;align-items:center;gap:.4rem;font-size:11px;line-height:1;color:rgba(255,255,255,.9);margin-top:.5rem;opacity:0;transform:translateY(6px);transition:.38s cubic-bezier(.4,.12,.12,1);letter-spacing:.5px;font-weight:400;z-index:3;}
.album-meta .meta-split{opacity:.55;}
.album-card:hover .album-meta{opacity:1;transform:translateY(0);}
/* 移动端 meta 始终可见 + 减轻动画位移 */
@media (max-width:860px){
  .album-meta{opacity:1 !important;transform:none !important;}
  .album-thumb:after{opacity:.72;}/* 移动端保持更轻遮罩，避免挡住封面细节 */
  .album-card:hover .album-thumb:after{opacity:.95;}
}
.album-overlay-title{margin:0;font-size:14px;line-height:1.3;font-weight:500;color:#fff;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-shadow:0 2px 4px rgba(0,0,0,.35);}
/* 更强可读性：夜间或复杂背景时文字阴影加强 */
html.night .album-overlay-title{ text-shadow:0 2px 6px rgba(0,0,0,.55); }
@media (min-width:860px){.album-overlay-title{font-size:15px;-webkit-line-clamp:2;}}
@media (max-width:1100px){.album-card{width:calc(33.333% - 11px);} }
@media (max-width:860px){.album-flex-wrapper{padding:1rem 1rem 0;} .album-card{width:calc(50% - 10px);} }
@media (max-width:560px){.album-card{width:100%;} }

/* 夜间模式：更深遮罩，加一点内边缘高光反差 */
html.night .album-overlay{background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.78) 92%);} 
html.night .album-card{background:rgba(30,30,30,.55);border-color:rgba(255,255,255,.05);} 
html.night .album-card:hover{box-shadow:0 16px 34px -10px rgba(0,0,0,.65);} 
html.night .album-thumb:after{background:linear-gradient(180deg,rgba(0,0,0,0) 25%,rgba(0,0,0,.5) 85%);opacity:.65;}
html.night .album-card:hover .album-thumb:after{opacity:.96;background:linear-gradient(180deg,rgba(0,0,0,0) 12%,rgba(0,0,0,.82) 94%);} 
@media (max-width:860px){html.night .album-thumb:after{opacity:.78;}}

@keyframes albumFadeUp{0%{opacity:0;transform:translateY(28px);}60%{opacity:1;}100%{opacity:1;transform:translateY(0);} }

/* 脉冲点击动画（瀑布流图片用） */
@keyframes albumPulse{0%{transform:scale(1);filter:brightness(1);}40%{transform:scale(1.11);filter:brightness(1.08);}70%{transform:scale(1.05);filter:brightness(1.04);}100%{transform:scale(1);filter:brightness(1);} }
.album-photos-masonry .masonry-item img.pulse-playing{animation:albumPulse .65s cubic-bezier(.4,0,.2,1);}

/* 追加：加载更多新增元素会动态添加 album-stagger-X 类来控制延迟 */
[class*='album-stagger-']{opacity:0;transform:translateY(26px);} 
[class*='album-stagger-'].stagger-in{animation:albumFadeUp .65s ease forwards;} 

/* --- 强制覆盖：相册文章内图片 hover 提升可见反馈（放在文件末尾保证优先级） --- */
.album-photos-masonry .masonry-item:hover img{transform:scale(1.08) translateY(-2px);filter:brightness(1.1) saturate(115%) contrast(1.02);} 
html.night .album-photos-masonry .masonry-item:hover img{filter:brightness(1.14) saturate(122%) contrast(1.05);} 
/* 懒加载中的图片 hover 不再过度放大，避免模糊扩大 */
.album-photos-masonry img.lazy-load:not(.loaded):hover{transform:scale(1.03);filter:brightness(1.05) saturate(108%);} 
