:root {
  --primary: #C8102E;
  --primary-dark: #8B0A1E;
  --primary-light: #E8435A;
  --secondary: #1A1A2E;
  --accent: #FFD700;
}

/* 大图画廊摄影风 — 黑白极简 */
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; letter-spacing: 0.01em; }

::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: #000; }
::-webkit-scrollbar-thumb { background: #444; }
::-webkit-scrollbar-thumb:hover { background: #777; }
::selection { background: #fff; color: #000; }

/* 精致的字距标题 */
.gallery-eyebrow {
  letter-spacing: 0.42em;
  text-transform: uppercase;
}
.gallery-display {
  letter-spacing: -0.02em;
  font-weight: 300;
}

/* 图片优雅缩放与遮罩 */
.frame { overflow: hidden; }
.frame img {
  transition: transform 1.1s cubic-bezier(.16,.84,.44,1), filter .9s ease;
}
.frame:hover img {
  transform: scale(1.07);
}
.frame-mask {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.85) 0%, rgba(0,0,0,.05) 55%, rgba(0,0,0,0) 100%);
  opacity: .55;
  transition: opacity .7s ease;
}
.frame:hover .frame-mask { opacity: .92; }
.frame-caption {
  transition: transform .7s cubic-bezier(.16,.84,.44,1);
}
.frame:hover .frame-caption { transform: translateY(-6px); }

/* 黑白默认、悬停显色（影展风格） */
.duo img { filter: grayscale(100%) contrast(1.05); }
.duo:hover img { filter: grayscale(0%) contrast(1); }

/* 细线分隔 */
.hairline { border-color: rgba(255,255,255,.12); }
.hairline-dark { border-color: rgba(0,0,0,.12); }

/* 移动端抽屉导航 */
.nav { transition: transform .45s cubic-bezier(.16,.84,.44,1); }
@media (max-width: 1023px) {
  .nav {
    position: fixed; top: 0; right: 0; bottom: 0;
    width: 86%; max-width: 360px;
    flex-direction: column;
    align-items: flex-start;
    background: #000;
    padding: 6rem 2rem 2rem;
    transform: translateX(100%);
    z-index: 60; overflow-y: auto;
    gap: 0.25rem;
  }
  .nav.active { transform: translateX(0); }
  .menu-overlay {
    position: fixed; inset: 0;
    background: rgba(0,0,0,.7);
    backdrop-filter: blur(4px);
    opacity: 0; visibility: hidden;
    transition: opacity .4s ease;
    z-index: 55;
  }
  .menu-overlay.active { opacity: 1; visibility: visible; }
  body.menu-open { overflow: hidden; }
}

/* FAQ 折叠 */
.faq-answer {
  max-height: 0; overflow: hidden; opacity: 0;
  transition: max-height .4s ease, opacity .4s ease;
}
.faq-icon { transition: transform .35s ease; }

/* 回到顶部 */
.back-to-top {
  opacity: 0; visibility: hidden;
  transition: opacity .4s ease;
}
.back-to-top.visible { opacity: 1; visibility: visible; }

/* 入场淡入 */
@keyframes galleryFade {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}
.gallery-fade { animation: galleryFade 1s cubic-bezier(.16,.84,.44,1) both; }

@media print {
  header, footer, nav, .no-print { display: none !important; }
  body { background: #fff !important; color: #000 !important; }
}
