/* 全局：深色底，避免滚动回弹露白 */
html, body { background-color: #0a0a0a; overscroll-behavior: none; }
html { scroll-behavior: smooth; }

/* 键盘聚焦：蓝色描边 */
:focus-visible {
  outline: 2px solid rgba(14, 165, 233, 0.85);
  outline-offset: 3px;
  border-radius: 6px;
}

/* 隐藏原生滚动条（右侧已有竖条指示） */
.no-scrollbar { scrollbar-width: none; -ms-overflow-style: none; }
.no-scrollbar::-webkit-scrollbar { display: none; }

/* 轮播进度条填充 */
@keyframes progress { 0% { width: 0%; } 100% { width: 100%; } }
.animate-progress { animation: progress 5s linear forwards; }

/* 轮播文案入场 */
@keyframes heroIn { 0% { opacity: 0; transform: translateY(26px); } 100% { opacity: 1; transform: none; } }
.animate-heroIn { animation: heroIn 0.7s cubic-bezier(0.2, 0.7, 0.2, 1) both; }

/* 滚动入场动画：淡入 + 轻微上移（JS 激活后才隐藏） */
.reveal-active .reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1);
  transition-delay: var(--reveal-delay, 0ms);
  will-change: opacity, transform;
}
.reveal-active .reveal.in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .reveal-active .reveal { opacity: 1 !important; transform: none !important; transition: none; }
}
