/* 计数动画 */
@keyframes countUp { from {opacity:0; transform:translateY(10px);} to {opacity:1; transform:translateY(0);} }
.count-animate { animation: countUp 1s ease-out forwards; }

/* 比例盒 (Ratio Box) */
.ratio-box { position: relative; width: 100%; }
.ratio-16-9 { padding-top: 56.25%; }
@media (max-width: 640px) {
    .ratio-16-9 { padding-top: 66.6667%; }
    .ratio-box { min-height: 220px; }
}
.ratio-inner { position: absolute; inset: 0; width: 100%; height: 100%; }

/* 查看器 */
.viewer-mask { background: rgba(0,0,0,.9); }
.viewer-img { max-height: 82vh; max-width: 92vw; object-fit: contain; }
.viewer-btn { width: 44px; height: 44px; }