/* 首页轻量动效与客户实拍图轮播：不依赖第三方库，兼容静态部署。 */
.hero-image { animation: hero-zoom 18s ease-out both; }
.hero-content > * { animation: hero-rise .8s both; }
.hero-content > *:nth-child(2) { animation-delay: .08s; }
.hero-content > *:nth-child(3) { animation-delay: .16s; }
.hero-content > *:nth-child(4) { animation-delay: .24s; }
.hero-content > *:nth-child(5) { animation-delay: .32s; }
.scroll-cue { align-items: center; color: rgba(255,255,255,.78); display: inline-flex; font-size: .88rem; gap: .6rem; margin-top: 1.8rem; text-decoration: none; }
.scroll-cue span { border: 1px solid rgba(255,255,255,.62); border-radius: 1rem; display: block; height: 1.7rem; position: relative; width: 1rem; }
.scroll-cue span::after { animation: scroll-dot 1.8s ease-in-out infinite; background: #fff; border-radius: 50%; content: ""; height: .25rem; left: calc(50% - .125rem); position: absolute; top: .3rem; width: .25rem; }
.project-gallery { background: #f0f3f5; overflow: hidden; }
.gallery-shell { margin: 2.2rem auto 0; max-width: 1180px; overflow: hidden; position: relative; }
.gallery-track { display: grid; grid-template-columns: repeat(6, 100%); transition: transform .68s cubic-bezier(.22,.7,.21,1); }
.gallery-slide { background: var(--navy); height: min(520px, 55vw); margin: 0; min-height: 340px; overflow: hidden; position: relative; }
.gallery-slide img { display: block; height: 100%; object-fit: cover; transition: transform 5s ease; width: 100%; }
.gallery-slide.is-active img { transform: scale(1.045); }
.gallery-slide figcaption { background: linear-gradient(transparent, rgba(5,19,35,.87)); bottom: 0; color: #fff; font-size: clamp(1rem, 2vw, 1.28rem); font-weight: 700; left: 0; padding: 4rem 2rem 1.5rem; position: absolute; right: 0; }
.gallery-controls { align-items: center; display: flex; gap: .75rem; justify-content: center; margin-top: 1.2rem; }
.gallery-controls button { background: #fff; border: 1px solid #d5dce3; border-radius: 50%; color: var(--navy); cursor: pointer; font-size: 1.25rem; height: 2.7rem; line-height: 1; transition: background .2s, color .2s, transform .2s; width: 2.7rem; }
.gallery-controls button:hover { background: var(--blue); color: #fff; transform: translateY(-2px); }
.gallery-dots { display: flex; gap: .45rem; }
.gallery-dots button { background: #bdc8d1; border: 0; border-radius: 1rem; cursor: pointer; height: .45rem; padding: 0; transition: background .2s, width .2s; width: .45rem; }
.gallery-dots button.is-active { background: var(--blue); width: 1.45rem; }
.reveal { opacity: 0; transform: translateY(22px); transition: opacity .65s ease, transform .65s ease; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.equipment-card, .case-grid article, .quick-panel a { transition: transform .25s ease, box-shadow .25s ease; }
.equipment-card:hover, .case-grid article:hover, .quick-panel a:hover { box-shadow: 0 16px 35px rgba(17,49,78,.13); transform: translateY(-5px); }
@keyframes hero-zoom { from { transform: scale(1.05); } to { transform: scale(1); } }
@keyframes hero-rise { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes scroll-dot { 0%, 100% { opacity: .35; transform: translateY(0); } 55% { opacity: 1; transform: translateY(.65rem); } }
@media (max-width: 800px) { .gallery-slide { height: 360px; min-height: 0; } .gallery-slide figcaption { padding: 3rem 1.2rem 1.1rem; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; } }
