/* ============ 跑马灯 ============ */
.marquee-band{
  background:linear-gradient(90deg,var(--accent),var(--cool),var(--accent));
  background-size:200% 100%;animation:bandflow 12s linear infinite;
  overflow:hidden;padding:16px 0;
}
@keyframes bandflow{to{background-position:200% 0;}}
.marquee-track{display:inline-flex;white-space:nowrap;animation:marquee 24s linear infinite;}
.marquee-track span{
  font-size:24px;font-weight:800;letter-spacing:3px;color:#F0FAF8;
  padding:0 26px;display:inline-flex;align-items:center;gap:26px;
}
.marquee-track span .sep{font-size:15px;opacity:0.6;font-style:normal;}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ============ 精选 ============ */
.featured-inner{
  display:grid;grid-template-columns:1.3fr 1fr;gap:0;
  border:1px solid var(--line);overflow:hidden;border-radius:8px;background:var(--card);
  box-shadow:0 22px 56px rgba(44,58,66,0.08);
}
.featured-img{
  min-height:400px;background:linear-gradient(135deg,#c4dcd6,#d5e6e0,#dcebe6);
  position:relative;background-size:cover;background-position:center;overflow:hidden;
}
.featured-img-inner{position:absolute;inset:-7%;background-size:cover;background-position:center;transform:translate3d(0,var(--media-y,0px),0) scale(1.04);transition:transform 0.9s var(--ease-02),filter 0.9s var(--ease-02);will-change:transform;}
.featured-img::before{
  content:'';position:absolute;inset:0;z-index:2;
  background:linear-gradient(110deg,rgba(245,250,249,0.18),transparent 34%,rgba(63,181,160,0.18));
  opacity:0.75;pointer-events:none;
}
.featured-img::after{
  content:'';position:absolute;inset:auto 22px 22px auto;width:88px;height:88px;z-index:3;
  border-right:3px solid var(--accent);border-bottom:3px solid var(--cool);
  opacity:0.85;pointer-events:none;
}
.featured-inner:hover .featured-img-inner{transform:translate3d(0,calc(var(--media-y,0px) - 10px),0) scale(1.08);filter:saturate(1.12);}
.featured-inner:hover{box-shadow:0 26px 64px rgba(44,58,66,0.12),0 0 40px rgba(191,234,240,0.25);}
.featured-info{padding:48px 40px;display:flex;flex-direction:column;justify-content:center;}
.feat-cat{display:inline-flex;align-items:center;gap:8px;color:var(--accent-deep);font-size:10px;letter-spacing:3px;font-weight:800;margin-bottom:18px;}
.feat-cat::before{content:'';width:22px;height:3px;background:var(--accent);}
.feat-title{font-size:25px;font-weight:700;line-height:1.5;margin-bottom:18px;font-family:'Noto Serif SC',serif;color:var(--text);}
.feat-excerpt{color:var(--text-soft);font-size:13px;line-height:1.9;margin-bottom:30px;}
.feat-meta{color:var(--accent-deep);font-size:11px;font-weight:700;letter-spacing:1px;margin-bottom:26px;}
.feat-btn{align-self:flex-start;color:var(--text);font-size:11px;letter-spacing:2px;font-weight:700;display:inline-flex;align-items:center;gap:8px;border-bottom:2px solid var(--accent);padding-bottom:6px;transition:gap var(--dur) var(--ease-01);}
.feat-btn:hover{gap:16px;}

/* ============ 横向滑动 ============ */
.hscroll-track{display:flex;gap:18px;overflow-x:auto;scrollbar-width:none;cursor:grab;padding-bottom:8px;}
.hscroll-track::-webkit-scrollbar{display:none;}
.hcard{flex:0 0 300px;background:var(--bg);border:1px solid var(--line);overflow:hidden;border-radius:8px;transition:transform var(--dur) var(--ease-01),box-shadow var(--dur),border-color var(--dur);}
.hcard:hover{transform:translateY(-8px) rotate(-0.35deg);box-shadow:0 18px 38px rgba(44,58,66,0.13),0 0 24px rgba(79,134,198,0.18);border-color:var(--cool);}
.hcard-img{height:185px;position:relative;background-size:cover;background-position:center;background-color:var(--card);overflow:hidden;}
.hcard-cat{position:absolute;top:14px;left:14px;z-index:3;background:var(--accent);color:var(--text);font-size:9px;letter-spacing:2px;padding:4px 9px;font-weight:800;}
.hcard-body{padding:18px;}
.hcard-date{color:var(--accent-deep);font-size:10px;font-weight:700;letter-spacing:1px;margin-bottom:8px;}
.hcard-title{color:var(--text);font-size:14px;line-height:1.55;font-weight:600;}

/* 图片占位渐变（无特色图兜底） */
.hi-1{background:linear-gradient(135deg,#c4dcd6,#d5e8e2)}
.hi-2{background:linear-gradient(135deg,#cfe0db,#dde9e4)}
.hi-3{background:linear-gradient(135deg,#c8dee0,#d8e8e6)}
.hi-4{background:linear-gradient(135deg,#cfe2dd,#dcebe6)}
.hi-5{background:linear-gradient(135deg,#cad9e6,#d8e3ee)}
.hi-6{background:linear-gradient(135deg,#cdd9e4,#dde6ee)}

/* ============ 图集 · 聚光灯 ============ */
.gallery-section{position:relative;padding:88px 48px;background:var(--bg-2);overflow:hidden;max-width:none;}
.gallery-section > .sec-head{max-width:var(--maxw);margin-left:auto;margin-right:auto;}
.spotlight-row{position:relative;z-index:10;display:flex;align-items:center;justify-content:center;margin:8px auto 0;border-radius:8px;overflow:visible;max-width:var(--maxw);gap:10px;}
.spotlight-item{flex:0 0 auto;width:190px;cursor:pointer;position:relative;transition:width 0.55s var(--ease-01),filter var(--dur),transform var(--dur);filter:brightness(0.92) saturate(0.85);overflow:hidden;border-radius:8px;border:1px solid rgba(63,181,160,0.28);}
.spotlight-item:nth-child(2n){transform:translateY(26px);}
.spotlight-item:nth-child(3n){transform:translateY(-18px);}
.spotlight-item:hover,.spotlight-item.active{width:440px;filter:brightness(1) saturate(1);z-index:5;}
.spotlight-item:hover{transform:translateY(-10px);}
.spotlight-row:has(.spotlight-item:hover) .spotlight-item:not(:hover){filter:brightness(0.8) saturate(0.7);}
.spotlight-img{width:100%;height:320px;display:block;background-size:cover;background-position:center;background-color:var(--card);transform:translate3d(0,var(--media-y,0px),0) scale(1.03);transition:transform 0.7s var(--ease-01),filter 0.7s var(--ease-01);will-change:transform;}
.spotlight-item:hover .spotlight-img,.spotlight-item.active .spotlight-img{transform:translate3d(0,var(--media-y,0px),0) scale(1.08);filter:saturate(1.1);}
.spotlight-item::before{content:'';position:absolute;inset:0;z-index:2;border:0 solid var(--accent);transition:border-width var(--dur);pointer-events:none;}
.spotlight-item:hover::before,.spotlight-item.active::before{
  border-width:3px;border-color:var(--star);
  box-shadow:inset 0 0 34px rgba(191,234,240,0.45);
}
.spotlight-info{position:absolute;bottom:0;left:0;right:0;z-index:4;padding:44px 22px 22px;background:linear-gradient(0deg,rgba(245,250,249,0.97),rgba(245,250,249,0.6) 55%,transparent);transform:translateY(100%);transition:transform var(--dur) var(--ease-01);pointer-events:none;}
.spotlight-item:hover .spotlight-info{transform:translateY(0);}
.info-cat{color:var(--accent-deep);font-size:9px;letter-spacing:3px;font-weight:800;margin-bottom:7px;}
.info-title{color:var(--text);font-size:15px;line-height:1.5;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.info-date{color:var(--text-soft);font-size:10px;font-weight:600;margin-top:7px;}

/* ============ 滚动揭开 ============ */
.reveal-section{padding:60px 48px;}
.rev-meta{display:flex;align-items:center;gap:14px;margin-bottom:22px;}
.rev-num{color:var(--accent-deep);font-size:12px;font-weight:800;}
.rev-cat{color:var(--text);font-size:10px;font-weight:700;letter-spacing:3px;border:1.5px solid var(--accent);padding:4px 12px;}
.rev-line{flex:1;height:1px;background:var(--line);}
.reveal-frame{position:relative;width:100%;height:60vh;overflow:hidden;background:var(--card);border-radius:8px;display:block;}
.reveal-img{position:absolute;inset:0;width:100%;height:100%;clip-path:inset(11% 11% 11% 11%);transform:scale(1.12);background-size:cover;background-position:center;}
.reveal-caption{position:absolute;left:36px;bottom:34px;z-index:4;overflow:hidden;}
.reveal-caption .line{transform:translateY(110%);transition:transform 0.8s var(--ease-01);}
.reveal-frame.shown .reveal-caption .line{transform:translateY(0);}
.reveal-caption .ttl{font-size:30px;font-weight:800;font-family:'Noto Serif SC',serif;color:var(--text);text-shadow:0 2px 16px rgba(245,250,249,0.7);}
.reveal-caption .sub{font-size:12px;color:var(--text-soft);letter-spacing:2px;font-weight:700;margin-top:8px;}
.bracket{position:absolute;width:28px;height:28px;border:3px solid var(--accent);z-index:3;opacity:0;transition:opacity 0.6s var(--ease-01);}
.reveal-frame.shown .bracket{opacity:1;}
.bracket.tl{top:18px;left:18px;border-right:0;border-bottom:0;}
.bracket.tr{top:18px;right:18px;border-left:0;border-bottom:0;}
.bracket.bl{bottom:18px;left:18px;border-right:0;border-top:0;}
.bracket.br{bottom:18px;right:18px;border-left:0;border-top:0;}
.bracket.tl,.bracket.br{border-color:var(--accent);}
.bracket.tr,.bracket.bl{border-color:var(--cool);}
.reveal-frame.shown .reveal-caption .ttl{text-shadow:0 2px 16px rgba(245,250,249,0.7),0 0 24px rgba(191,234,240,0.4);}

/* ============ 文章网格 ============ */
.posts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.pgrid-card{background:var(--bg);border:1px solid var(--line);overflow:hidden;border-radius:8px;transition:transform var(--dur) var(--ease-01),box-shadow var(--dur),border-color var(--dur);}
.pgrid-card:hover{transform:translateY(-7px) rotate(0.25deg);box-shadow:0 16px 32px rgba(44,58,66,0.12),0 0 24px rgba(79,134,198,0.18);border-color:var(--cool);}
.pgrid-thumb{height:150px;position:relative;background-size:cover;background-position:center;background-color:var(--card);overflow:hidden;}
.pgrid-cat{position:absolute;top:12px;left:12px;z-index:3;background:var(--accent);color:var(--text);font-size:9px;letter-spacing:2px;padding:4px 9px;font-weight:800;}
.pgrid-body{padding:18px;}
.pgrid-date{color:var(--accent-deep);font-size:10px;font-weight:700;margin-bottom:8px;letter-spacing:1px;}
.pgrid-title{color:var(--text);font-size:14px;line-height:1.55;font-weight:600;}

.motion-media{
  position:absolute;inset:-8%;background-size:cover;background-position:center;
  transform:translate3d(0,var(--media-y,0px),0) scale(1.03);
  transition:transform 0.75s var(--ease-02),filter 0.75s var(--ease-02);
  will-change:transform;
}
.hcard-img::before,.pgrid-thumb::before{
  content:'';position:absolute;inset:0;z-index:1;
  background:linear-gradient(120deg,transparent 18%,rgba(255,255,255,0.4) 45%,transparent 68%);
  transform:translateX(-120%);transition:transform 0.65s var(--ease-02);pointer-events:none;
}
.hcard-img::after,.pgrid-thumb::after{
  content:'';position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,transparent 48%,rgba(44,58,66,0.16));
  pointer-events:none;
}
.hcard:hover .motion-media,.pgrid-card:hover .motion-media{transform:translate3d(0,calc(var(--media-y,0px) - 8px),0) scale(1.08);filter:saturate(1.12) contrast(1.03);}
.hcard:hover .hcard-img::before,.pgrid-card:hover .pgrid-thumb::before{transform:translateX(120%);}
.hcard:nth-child(3n+1) .motion-media,.pgrid-card:nth-child(3n+1) .motion-media{transform-origin:25% 35%;}
.hcard:nth-child(3n+2) .motion-media,.pgrid-card:nth-child(3n+2) .motion-media{transform-origin:75% 45%;}
.hcard:nth-child(3n) .motion-media,.pgrid-card:nth-child(3n) .motion-media{transform-origin:45% 75%;}

/* ============ 入场动画 ============ */
.fade-up{opacity:0;transform:translateY(34px);transition:opacity 1s var(--ease-02),transform 1s var(--ease-02);}
.fade-up.visible{opacity:1;transform:translateY(0);}
.d1{transition-delay:.08s}.d2{transition-delay:.16s}.d3{transition-delay:.24s}

@media (prefers-reduced-motion: reduce){
  .marquee-track,.hero-aura,.hero-float{animation:none;}
  .motion-media,.featured-img-inner,.spotlight-img,.fade-up{transition:none;}
  .marquee-band{animation:none;}
}

/* ============ 第 6 区 · 动漫 / 电影照片墙 ============ */
.favorites-section{
  position:relative;min-height:auto;overflow:hidden;padding:88px 42px 96px;
  background:linear-gradient(180deg,var(--bg-2),#EEF1EF);color:var(--text);isolation:isolate;
}
.favorites-section::before{
  content:'';position:absolute;inset:0;z-index:0;opacity:.5;pointer-events:none;
  background:repeating-linear-gradient(90deg,transparent 0,transparent calc(20% - 1px),rgba(94,114,122,.18) calc(20% - 1px),rgba(94,114,122,.18) 20%);
}
.favorites-section::after{
  content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 14% 18%,rgba(63,181,160,.16),transparent 26%),
    radial-gradient(circle at 82% 72%,rgba(79,134,198,.13),transparent 28%),
    linear-gradient(180deg,rgba(245,250,249,.48),transparent 44%,rgba(245,250,249,.32));
}
.favorites-kicker{
  position:relative;z-index:3;display:flex;align-items:center;justify-content:center;gap:18px;
  color:var(--accent-deep);font-size:11px;letter-spacing:4px;font-weight:800;text-transform:uppercase;
}
.favorites-kicker::before,.favorites-kicker::after{content:'';width:54px;height:2px;background:var(--accent);}
.favorites-title{
  position:absolute;z-index:1;left:-.2vw;right:-.2vw;top:-10px;
  font-family:'Inter',sans-serif;font-size:clamp(72px,12vw,188px);line-height:.82;
  color:rgba(79,134,198,.16);font-weight:300;letter-spacing:-.035em;text-transform:uppercase;
  white-space:nowrap;pointer-events:none;
}
.favorites-subtitle{
  position:relative;z-index:3;text-align:center;margin-top:96px;
  font-size:15px;color:var(--cool-deep);letter-spacing:.6px;font-weight:600;
}
.favorites-stage{
  position:relative;z-index:2;width:min(1220px,100%);margin:48px auto 0;
  display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:34px 30px;
}
.fav-item{
  position:relative;display:block;color:var(--cool-deep);text-decoration:none;
  min-height:230px;padding:0 4px;transform:translate3d(0,var(--fav-y,0px),0);
  transition:transform .55s var(--ease-02),filter .45s;will-change:transform;
}
.fav-item:nth-child(5n+2),.fav-item:nth-child(5n+4){margin-top:42px;}
.fav-item:nth-child(5n+3){margin-top:12px;}
.fav-item:nth-child(n+11){margin-top:18px;}
.fav-item-4{grid-column:3 / span 1;grid-row:2;min-height:300px;}
.fav-item-4 .fav-cover{width:100%!important;aspect-ratio:1/1!important;}
.fav-item-4 .fav-label{text-align:center!important;margin:0 0 14px!important;}
  will-change:transform;
}
.fav-label{
  display:block;font-size:14px;line-height:1.35;font-weight:600;letter-spacing:.02em;
  text-shadow:0 1px 0 rgba(245,250,249,.4);
}
.fav-cover{
  position:relative;display:block;overflow:hidden;margin-top:12px;width:72%;aspect-ratio:1/1;
  background:linear-gradient(135deg,#F5FAF9,#DCEBE7);
  box-shadow:0 14px 34px rgba(44,58,66,.09);transition:transform .55s var(--ease-02),box-shadow .55s,filter .55s;
}
.fav-cover::before{
  content:'';position:absolute;inset:0;z-index:2;border:1px solid rgba(6,76,255,.18);pointer-events:none;
}
.fav-cover::after{
  content:'';position:absolute;inset:0;z-index:3;
  background:linear-gradient(115deg,transparent 20%,rgba(255,255,255,.44),transparent 58%);
  transform:translateX(-130%);transition:transform .7s var(--ease-02);pointer-events:none;
}
.fav-cover-img{position:absolute;inset:-5%;background-size:cover;background-position:center;transition:transform .7s var(--ease-02),filter .7s;}
.fav-placeholder{
  position:absolute;inset:0;display:grid;place-items:center;color:rgba(6,76,255,.58);
  font-size:12px;letter-spacing:2px;font-weight:800;text-transform:uppercase;
}
.fav-item:hover{z-index:12;}
.fav-item:hover .fav-cover{transform:translateY(-7px) scale(1.035);box-shadow:0 22px 52px rgba(44,58,66,.14),0 0 28px rgba(191,234,240,.28);}
.fav-item:hover .fav-cover::after{transform:translateX(130%);}
.fav-item:hover .fav-cover-img{transform:scale(1.08);filter:saturate(1.12) contrast(1.04);}

.fav-item:nth-child(5n+1) .fav-cover{margin-left:auto;margin-right:8%;}
.fav-item:nth-child(5n+2) .fav-cover{margin-left:8%;}
.fav-item:nth-child(5n+3) .fav-cover{margin-left:auto;margin-right:auto;}
.fav-item:nth-child(5n+4) .fav-cover{margin-left:18%;}
.fav-item:nth-child(5n) .fav-cover{margin-left:auto;}
