/* ========== 虚拟展厅页 ========== */
.virtual-page { margin-top:64px; }

.hall-selector {
  background:var(--ink); padding:60px 32px;
  text-align:center;
}
.hall-selector h1 {
  font-family:var(--font-sc); color:var(--gold);
  font-size:2rem; margin-bottom:8px; letter-spacing:.15em;
}
.hall-selector > p {
  color:rgba(255,255,255,.4); font-size:.82rem; margin-bottom:36px;
}
.halls-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:20px;
  max-width:1000px; margin:0 auto;
}
.hall-card {
  background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.08);
  border-radius:8px; padding:20px; cursor:pointer;
  transition:all var(--transition);
}
.hall-card:hover,.hall-card.active {
  border-color:var(--gold); background:rgba(201,168,76,.06);
}
.hall-preview {
  height:140px; border-radius:4px; margin-bottom:16px;
  overflow:hidden;
}
.hall-card h3 {
  font-family:var(--font-sc); color:var(--white);
  font-size:1.05rem; line-height:1.5; margin-bottom:8px;
}
.hall-card p { font-size:.78rem; color:rgba(255,255,255,.4); line-height:1.6; }
.hall-count {
  display:inline-block; margin-top:10px; padding:4px 10px;
  background:rgba(201,168,76,.1); color:var(--gold);
  border-radius:10px; font-size:.72rem;
}

/* 3D 查看器容器 */
.virtual-viewer { position:relative; }
.viewer-container {
  position:relative; width:100%; height:75vh; min-height:500px;
  background:#000; overflow:hidden;
}
.viewer-canvas { display:block; width:100%; height:100%; }
.viewer-hint {
  position:absolute; bottom:80px; left:50%; transform:translateX(-50%);
  z-index:8; color:rgba(255,255,255,.35); font-size:.78rem;
  letter-spacing:.05em; white-space:nowrap;
  transition:opacity 1s;
}
.viewer-hint.hide { opacity:0; pointer-events:none; }
.viewer-controls {
  position:absolute; bottom:16px; left:50%; transform:translateX(-50%);
  z-index:10; display:flex; gap:6px;
}
.ctrl-btn {
  padding:8px 16px; border-radius:4px;
  background:rgba(0,0,0,.6); backdrop-filter:blur(8px);
  border:1px solid rgba(201,168,76,.2); color:rgba(255,255,255,.6);
  font-size:.78rem; transition:all var(--transition);
}
.ctrl-btn:hover,.ctrl-btn.active {
  border-color:var(--gold); color:var(--gold);
  background:rgba(201,168,76,.1);
}

/* 展厅作品列表 */
.hall-artworks {
  max-width:1320px; margin:0 auto; padding:60px 32px;
}
.hall-artworks h3 {
  font-family:var(--font-sc); font-size:1.3rem; margin-bottom:32px;
  padding-left:16px; border-left:4px solid var(--gold);
}
.hall-artworks-grid {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:20px;
}
.hall-artwork-item {
  background:var(--white); border-radius:var(--radius);
  overflow:hidden; box-shadow:var(--shadow); cursor:pointer;
  transition:all var(--transition);
}
.hall-artwork-item:hover { transform:translateY(-2px); box-shadow:var(--shadow-lg); }
.hall-artwork-thumb {
  height:180px; position:relative;
}
.hall-artwork-info { padding:12px 14px; }
.hall-artwork-info h4 { font-family:var(--font-sc); font-size:.88rem; margin-bottom:3px; }
.hall-artwork-info p { font-size:.72rem; color:var(--gray); }

/* ========== 展览页 ========== */
.exhibition-page { margin-top:64px; }
.exh-hero {
  background:linear-gradient(135deg, #0d0d0d, #1a1a1a);
  padding:80px 32px; text-align:center;
}
.exh-hero h1 {
  font-family:var(--font-sc); color:var(--gold);
  font-size:2.2rem; letter-spacing:.15em; margin-bottom:10px;
}
.exh-hero p { color:rgba(255,255,255,.45); font-size:.88rem; }
.exhibitions-full {
  max-width:1200px; margin:0 auto; padding:60px 32px;
}
.exh-section-title {
  font-family:var(--font-sc); font-size:1.2rem;
  margin-bottom:24px; margin-top:48px;
  padding-left:16px; border-left:4px solid var(--gold);
}
.exh-section-title:first-child { margin-top:0; }
.exh-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
}

/* ========== 画廊页 ========== */
.gallery-page { margin-top:64px; }
.gallery-header {
  background:var(--ink); padding:60px 32px; text-align:center;
}
.gallery-header h1 {
  font-family:var(--font-sc); color:var(--gold);
  font-size:2rem; letter-spacing:.15em; margin-bottom:8px;
}
.gallery-header p { color:rgba(255,255,255,.4); font-size:.85rem; }
.gallery-main {
  max-width:1320px; margin:0 auto; padding:40px 32px;
}
.gallery-sidebar { }
.sidebar-group {
  background:var(--white); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:20px; margin-bottom:16px;
}
.sidebar-group h4 {
  font-family:var(--font-sc); font-size:.92rem; margin-bottom:12px;
  padding-bottom:8px; border-bottom:1px solid var(--cream-dk);
}
.sidebar-filter label {
  display:flex; align-items:center; gap:8px;
  padding:6px 0; font-size:.82rem; color:var(--ink-md);
  cursor:pointer; transition:color var(--transition);
}
.sidebar-filter label:hover { color:var(--gold-dk); }
.sidebar-filter input[type="checkbox"],
.sidebar-filter input[type="radio"] {
  accent-color:var(--gold);
}
.gallery-grid {
  display:grid; grid-template-columns:repeat(4,1fr); gap:20px;
}
.gallery-pagination {
  display:flex; align-items:center; justify-content:center; flex-wrap:wrap;
  gap:8px; margin:40px 0 8px;
}
.gallery-pagination[hidden] { display:none; }
.pagination-btn {
  min-width:40px; height:40px; padding:0 12px;
  border:1px solid var(--cream-dk); border-radius:4px;
  background:var(--white); color:var(--ink-md);
  font-family:inherit; font-size:.8rem;
  transition:all var(--transition);
}
.pagination-btn:hover:not(:disabled),
.pagination-btn.active {
  border-color:var(--gold); background:var(--ink); color:var(--gold);
}
.pagination-btn.active { cursor:default; }
.pagination-btn:disabled { opacity:.38; cursor:not-allowed; }
.pagination-nav { min-width:72px; }
.pagination-ellipsis {
  min-width:28px; text-align:center; color:var(--gray); line-height:40px;
}

/* ========== 艺术家页 ========== */
.artists-page { margin-top:64px; }
.artists-header {
  background:var(--ink); padding:60px 32px; text-align:center;
}
.artists-header h1 {
  font-family:var(--font-sc); color:var(--gold);
  font-size:2rem; letter-spacing:.15em; margin-bottom:8px;
}
.artists-header p { color:rgba(255,255,255,.4); font-size:.85rem; }
.artists-main { max-width:1320px; margin:0 auto; padding:40px 32px; }
.artists-grid {
  display:grid; grid-template-columns:repeat(4,1fr); gap:24px;
}
.artist-big-card {
  display:flex; background:var(--white); border-radius:var(--radius);
  box-shadow:var(--shadow); overflow:hidden; cursor:pointer;
  transition:all var(--transition);
}
.artist-big-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-lg); }
.artist-cover {
  width:180px; min-height:200px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
}
.artist-avatar-big {
  width:72px; height:72px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:var(--white); font-family:var(--font-sc);
  font-size:1.6rem; font-weight:700;
  border:2px solid rgba(201,168,76,.4);
}
.artist-big-info { padding:20px 24px; flex:1; }
.artist-big-info h3 { font-family:var(--font-sc); font-size:1.1rem; margin-bottom:4px; }
.artist-type {
  font-size:.78rem; color:var(--gold-dk); margin-bottom:10px;
}
.artist-big-info p {
  font-size:.82rem; color:var(--gray); line-height:1.8; margin-bottom:12px;
}
.artist-stats {
  display:flex; gap:20px; font-size:.75rem; color:var(--gray);
}

/* V4 真实数据页面 */
.gallery-count { color:var(--gray); font-size:.8rem; white-space:nowrap; }
.public-artists-grid { grid-template-columns:repeat(3,1fr); }
.public-artists-grid .artist-big-card { flex-direction:column; }
.public-artists-grid .artist-cover { width:100%; height:260px; min-height:260px; background:#171717; }
.public-artist-cover img { width:100%; height:100%; object-fit:cover; }
.public-artists-grid .artist-big-info p {
  display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden;
}
.about-actions { display:flex; gap:16px; margin-top:24px; flex-wrap:wrap; }
.about-feature-list { list-style:none; padding:0; }
.about-feature-list li { padding:14px 0; border-bottom:1px solid var(--cream-dk); line-height:1.7; }
.about-section-title { font-family:var(--font-sc); font-size:1.6rem; margin-bottom:20px; padding-left:16px; border-left:4px solid var(--gold); }
.about-copy-card { background:#fff; padding:32px; border-radius:8px; box-shadow:var(--shadow); color:var(--ink-md); line-height:2; }
.about-copy-card p + p { margin-top:12px; }
.contact-section { background:var(--cream-dk); padding:80px 8vw; text-align:center; }
.contact-section h2 { font-family:var(--font-sc); font-size:2rem; margin-bottom:32px; }
.contact-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; max-width:900px; margin:0 auto; }
.contact-card { background:#fff; border-radius:6px; padding:28px; box-shadow:var(--shadow); }
.contact-card h4 { font-family:var(--font-sc); margin-bottom:8px; }
.contact-card p { font-size:.85rem; color:var(--gray); }
.contact-icon { font-size:2.2rem; margin-bottom:12px; }
.contact-card [data-contact="qrcode"] { display:flex; justify-content:center; width:100%; margin-top:16px; }
.detail-title { font-family:var(--font-sc); margin:8px 0; font-size:1.8rem; }
.detail-kicker { color:var(--gold-dk); font-size:.72rem; letter-spacing:.18em; }
.artist-work-card { border:0; text-align:left; font-family:inherit; }

@media (max-width:900px) {
  .public-artists-grid { grid-template-columns:repeat(2,1fr); }
  .contact-grid { grid-template-columns:1fr; }
}
@media (max-width:600px) {
  .public-artists-grid { grid-template-columns:1fr; }
  .public-artists-grid .artist-cover { height:220px; min-height:220px; }
  .contact-section { padding:52px 16px; }
}

/* ========== 科普页 ========== */
/* ===== 艺术百科 四大横向模块 ===== */
.wiki-modules-wrap {
  background: #f5f0e8;
  padding: 36px 32px 0;
  max-width: 1320px;
  margin: 0 auto;
}
.wiki-modules {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin-bottom: 0;
}
.wiki-module-card {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 22px 20px;
  border-radius: 14px;
  color: #fff;
  text-decoration: none;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  position: relative;
  overflow: hidden;
}
.wiki-module-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,0.04);
  opacity: 0;
  transition: opacity 0.25s;
}
.wiki-module-card:hover { transform: translateY(-4px); box-shadow: 0 12px 36px rgba(0,0,0,0.25); }
.wiki-module-card:hover::before { opacity: 1; }
.wiki-module-icon {
  font-size: 2rem;
  flex-shrink: 0;
  line-height: 1;
}
.wiki-module-info {
  flex: 1;
  min-width: 0;
}
.wiki-module-info h3 {
  font-size: 1rem;
  font-weight: 700;
  margin: 0 0 4px;
  letter-spacing: 0.06em;
  color: #fff;
}
.wiki-module-info p {
  font-size: 0.72rem;
  color: rgba(255,255,255,0.65);
  margin: 0 0 6px;
  line-height: 1.5;
}
.wiki-module-count {
  display: inline-block;
  font-size: 0.68rem;
  color: rgba(201,168,76,0.9);
  background: rgba(201,168,76,0.12);
  padding: 2px 8px;
  border-radius: 10px;
}
.wiki-module-arrow {
  font-size: 1.1rem;
  color: rgba(255,255,255,0.4);
  flex-shrink: 0;
  transition: color 0.2s, transform 0.2s;
}
.wiki-module-card:hover .wiki-module-arrow {
  color: rgba(201,168,76,0.9);
  transform: translateX(4px);
}

@media (max-width: 900px) {
  .wiki-modules { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 540px) {
  .wiki-modules { grid-template-columns: 1fr; }
  .wiki-modules-wrap { padding: 24px 16px 0; }
}

.knowledge-page { margin-top:64px; }
.knowledge-header {
  background:var(--ink); padding:60px 32px; text-align:center;
}
.knowledge-header h1 {
  font-family:var(--font-sc); color:var(--gold);
  font-size:2rem; letter-spacing:.15em; margin-bottom:8px;
}
.knowledge-header p { color:rgba(255,255,255,.4); font-size:.85rem; }
.knowledge-main {
  max-width:1320px; margin:0 auto; padding:40px 32px;
  display:grid; grid-template-columns:1fr 300px; gap:36px;
}
.knowledge-grid { display:grid; gap:20px; }
.k-card {
  display:flex; background:var(--white); border-radius:var(--radius);
  box-shadow:var(--shadow); overflow:hidden; cursor:pointer;
  transition:all var(--transition);
}
.k-card:hover { transform:translateY(-2px); box-shadow:var(--shadow-lg); }
.k-cover { width:220px; min-height:160px; flex-shrink:0; }
.k-info { padding:20px 24px; flex:1; }
.k-tag { font-size:.78rem; color:var(--gold-dk); display:block; margin-bottom:8px; }
.k-info h3 { font-family:var(--font-sc); font-size:1rem; margin-bottom:8px; }
.k-info p { font-size:.82rem; color:var(--gray); line-height:1.7; }
.k-sidebar-card {
  background:var(--white); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:24px; margin-bottom:20px;
}
.k-sidebar-card h4 {
  font-family:var(--font-sc); font-size:.95rem; margin-bottom:16px;
}
.k-sidebar-list a {
  display:block; font-size:.82rem; color:var(--ink-md);
  padding:8px 0; border-bottom:1px solid var(--cream-dk);
  transition:color var(--transition);
}
.k-sidebar-list a:last-child { border-bottom:none; }
.k-sidebar-list a:hover { color:var(--gold-dk); }

/* ========== 关于页 ========== */
.about-page { margin-top:64px; }
.about-hero {
  background:linear-gradient(135deg,#0d0d0d,#1a1a1a);
  padding:80px 32px; text-align:center;
}
.about-hero h1 {
  font-family:var(--font-sc); color:var(--gold);
  font-size:2.2rem; letter-spacing:.15em; margin-bottom:16px;
}
.about-hero p {
  max-width:680px; margin:0 auto; color:rgba(255,255,255,.5);
  font-size:.9rem; line-height:1.9;
}
.about-sections { max-width:1100px; margin:0 auto; padding:60px 32px; }
.about-row {
  display:flex; gap:48px; margin-bottom:64px; align-items:center;
}
.about-row > div:first-child { flex:1; }
.about-row > div:last-child { flex-shrink:0; }
.about-row h2 {
  font-family:var(--font-sc); font-size:1.6rem; margin-bottom:20px;
  padding-left:16px; border-left:4px solid var(--gold);
}
.about-row p {
  font-size:.88rem; color:var(--ink-md); line-height:1.9; margin-bottom:12px;
}
.about-img-block {
  width:200px; height:200px; border-radius:12px;
  background:var(--cream-dk); display:flex; align-items:center;
  justify-content:center; font-size:4rem;
}

/* 团队 */
.team-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.team-card {
  background:var(--white); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:32px 24px; text-align:center;
  transition:all var(--transition);
}
.team-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-lg); }
.team-avatar {
  width:72px; height:72px; border-radius:50%; margin:0 auto 16px;
  display:flex; align-items:center; justify-content:center;
  color:var(--white); font-family:var(--font-sc); font-size:1.6rem;
  font-weight:700;
}
.team-card h4 { font-family:var(--font-sc); font-size:.95rem; margin-bottom:8px; }
.team-card p { font-size:.8rem; color:var(--gray); line-height:1.7; }

/* 入驻表单 */
.join-section {
  background:var(--ink); padding:80px 32px;
}
.join-inner { max-width:680px; margin:0 auto; }
.join-section h2 {
  font-family:var(--font-sc); color:var(--gold);
  font-size:1.6rem; text-align:center; margin-bottom:8px;
  letter-spacing:.1em;
}
.join-section > .join-inner > p {
  text-align:center; color:rgba(255,255,255,.45); font-size:.85rem;
  margin-bottom:36px;
}
.join-form {
  background:rgba(255,255,255,.05); border:1px solid rgba(201,168,76,.15);
  border-radius:8px; padding:36px;
}
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:20px; }
.form-group { margin-bottom:20px; }
.form-group label {
  display:block; font-size:.82rem; color:rgba(255,255,255,.6);
  margin-bottom:8px;
}
.form-group input,
.form-group select,
.form-group textarea {
  width:100%; padding:12px 16px;
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12);
  border-radius:4px; color:var(--white); font-family:inherit;
  font-size:.88rem; transition:border-color var(--transition);
}
.form-group input::placeholder,
.form-group textarea::placeholder {
  color:rgba(255,255,255,.25);
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  outline:none; border-color:var(--gold);
}
.form-group select option { background:var(--ink); }
.form-group textarea { min-height:120px; resize:vertical; }

/* ========== 响应式 ========== */
@media (max-width:1024px) {
  .halls-grid { grid-template-columns:1fr; max-width:400px; }
  .gallery-main { grid-template-columns:1fr; }
  .gallery-sidebar { display:none; }
  .gallery-grid { grid-template-columns:repeat(2,1fr); }
  .artists-grid { grid-template-columns:repeat(2,1fr); }
  .knowledge-main { grid-template-columns:1fr; }
  .exh-grid { grid-template-columns:1fr 1fr; }
  .about-row { flex-direction:column !important; }
  .about-img-block { width:100%; height:160px; }
  .team-grid { grid-template-columns:1fr 1fr; }
  .form-row { grid-template-columns:1fr; }
}
@media (max-width:640px) {
  .gallery-main { padding:24px 12px 48px; }
  .gallery-toolbar { overflow:hidden; }
  .filter-tabs { display:flex; overflow-x:auto; gap:6px; padding-bottom:4px; scrollbar-width:none; }
  .filter-tabs::-webkit-scrollbar { display:none; }
  .filter-btn { flex:0 0 auto; padding:7px 14px; }
  .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .gallery-grid .artwork-card { min-width:0; margin-bottom:0; }
  .gallery-grid .public-art-image { height:auto; aspect-ratio:4 / 5; }
  .gallery-grid .artwork-meta { padding:10px; }
  .gallery-grid .artwork-meta h4 { font-size:.82rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .gallery-grid .artwork-meta p { font-size:.68rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .gallery-pagination { gap:6px; margin-top:28px; }
  .pagination-btn { min-width:36px; height:36px; padding:0 9px; }
  .pagination-nav { min-width:64px; }
  .exh-grid { grid-template-columns:1fr; }
  .team-grid { grid-template-columns:1fr; }
  .hall-artworks-grid { grid-template-columns:repeat(2,1fr); }
  .viewer-container { height:55vh; min-height:360px; }
  .halls-grid { grid-template-columns:1fr; max-width:100%; }
  .artist-big-card { flex-direction:column; }
  .artist-cover { width:100%; min-height:120px; }
  .artist-big-info { padding:14px 16px; }
  .artist-big-info h3 { font-size:.95rem; }
  .artist-big-info p { font-size:.74rem; }
  .knowledge-main { grid-template-columns:1fr; }
  .knowledge-sidebar { display:none; }
  .k-card { flex-direction:column; }
  .k-cover { width:100%; min-height:180px; }
  .k-info { padding:14px 16px; }
  .about-row { flex-direction:column!important; gap:24px; }
  .about-img-block { width:100%; height:140px; }
  .about-row h2 { font-size:1.3rem; }
  .about-row p { font-size:.8rem; }
  .join-form { padding:24px 16px; }
  .wiki-modules { grid-template-columns: repeat(2, 1fr); }
  .hall-selector { padding:40px 16px; }
  .hall-selector h1 { font-size:1.4rem; }
  .hall-card { padding:16px; }
  .hall-preview { height:110px; }
  .viewer-hint { bottom:68px; font-size:.7rem; }
  .ctrl-btn { padding:6px 12px; font-size:.7rem; }
}
@media (max-width:340px) {
  .gallery-grid { grid-template-columns:1fr; }
}
@media (max-width:480px) {
  .hall-selector { padding:32px 12px; }
  .hall-selector h1 { font-size:1.2rem; }
  .halls-grid { gap:12px; }
  .hall-card { padding:12px; }
  .hall-card h3 { font-size:.9rem; }
  .hall-card p { font-size:.7rem; }
  .hall-preview { height:90px; }
  .viewer-container { height:45vh; min-height:280px; }
  .hall-artworks { padding:36px 12px; }
  .hall-artworks h3 { font-size:1.1rem; }
  .hall-artworks-grid { grid-template-columns:repeat(2,1fr); gap:12px; }
  .hall-artwork-thumb { height:140px; }
  .hall-artwork-info { padding:8px 10px; }
  .hall-artwork-info h4 { font-size:.78rem; }
  .exh-hero { padding:48px 16px; }
  .exh-hero h1 { font-size:1.2rem; letter-spacing:.08em; }
  .exhibitions-full { padding:32px 12px; }
  .exh-section-title { font-size:1rem; margin-top:32px; }
  .gallery-header { padding:40px 16px; }
  .gallery-header h1 { font-size:1.4rem; }
  .gallery-main { padding:24px 12px; }
  .artists-header { padding:40px 16px; }
  .artists-header h1 { font-size:1.4rem; }
  .artists-main { padding:24px 12px; }
  .artists-grid { grid-template-columns:1fr; gap:16px; }
  .knowledge-header { padding:40px 16px; }
  .knowledge-header h1 { font-size:1.4rem; }
  .knowledge-main { padding:24px 12px; }
  .k-card { border-radius:8px; }
  .k-cover { min-height:150px; }
  .k-info h3 { font-size:.85rem; }
  .k-info p { font-size:.72rem; }
  .wiki-modules-wrap { padding:20px 12px 0; }
  .wiki-module-card { padding:16px 14px; gap:12px; }
  .wiki-module-icon { font-size:1.5rem; }
  .wiki-module-info h3 { font-size:.85rem; }
  .wiki-module-info p { font-size:.65rem; }
  .about-hero { padding:48px 16px; }
  .about-hero h1 { font-size:1.4rem; }
  .about-hero p { font-size:.78rem; }
  .about-sections { padding:36px 16px; }
  .about-row { gap:20px; margin-bottom:40px; }
  .about-row h2 { font-size:1.15rem; }
  .about-row p { font-size:.76rem; }
  .about-img-block { height:120px; font-size:3rem; }
  .team-grid { gap:16px; }
  .team-card { padding:24px 16px; }
  .team-avatar { width:56px; height:56px; font-size:1.3rem; }
  .join-section { padding:48px 16px; }
  .join-section h2 { font-size:1.3rem; }
  .form-row { grid-template-columns:1fr; gap:14px; }
  .join-form { padding:20px 12px; }
  .detail-panel { max-width:100vw; width:100vw; }
  .detail-hero { min-height:180px; padding:36px 20px 24px; }
  .detail-hero h1 { font-size:1.2rem; }
  .detail-sub { font-size:.74rem; }
  .detail-content { padding:20px 16px 36px; }
  .detail-meta-grid { grid-template-columns:repeat(2,1fr); padding:12px; gap:10px; }
  .detail-section h3 { font-size:.95rem; }
  .detail-desc { font-size:.8rem; }
  .detail-related-works { grid-template-columns:1fr; }
  .detail-hero-image { min-height:180px; }
  .detail-hero-image > img:first-child { max-height:240px; }
  .detail-thumbs { padding:8px 16px 12px; }
  .detail-thumb { width:48px; height:48px; }
  .artist-works-grid { grid-template-columns:repeat(2,1fr); gap:10px; }
  .artist-work-card-info { padding:10px; }
  .artist-work-card-info h5 { font-size:.78rem; }
}

/* ========== 通用详情弹窗 ========== */
.detail-overlay {
  position:fixed; inset:0; z-index:300;
  display:none; align-items:stretch; justify-content:flex-end;
}
.detail-overlay.open { display:flex; }
.detail-overlay-bg {
  position:absolute; inset:0;
  background:rgba(0,0,0,.6);
  backdrop-filter:blur(6px);
}
.detail-panel {
  position:relative; z-index:1;
  width:680px; max-width:92vw;
  background:var(--white);
  overflow:hidden;
  display:flex; flex-direction:column;
  box-shadow:-8px 0 48px rgba(0,0,0,.2);
  animation:detailSlideIn .35s ease;
}
@keyframes detailSlideIn {
  from { transform:translateX(100%); }
  to { transform:translateX(0); }
}
.detail-close {
  position:absolute; top:16px; right:16px; z-index:10;
  width:40px; height:40px; border-radius:50%;
  background:rgba(255,255,255,.9); font-size:1.1rem;
  color:var(--ink); display:flex; align-items:center; justify-content:center;
  transition:all var(--transition); box-shadow:0 2px 8px rgba(0,0,0,.1);
}
.detail-close:hover { background:var(--gold); color:var(--ink); }
.detail-panel-body {
  flex:1; overflow-y:auto; overflow-x:hidden;
}
.detail-hero {
  min-height:280px; position:relative;
  display:flex; align-items:flex-end;
  padding:48px 36px 36px;
}
.detail-hero-inner { position:relative; z-index:2; }
.detail-hero::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(0,0,0,.7) 0%, rgba(0,0,0,.2) 60%, transparent 100%);
}
.artist-hero {
  align-items:center; justify-content:center; text-align:center; min-height:260px;
}
.detail-artist-avatar {
  width:80px; height:80px; border-radius:50%; margin:0 auto 16px;
  display:flex; align-items:center; justify-content:center;
  background:rgba(201,168,76,.2); color:var(--white);
  font-family:var(--font-sc); font-size:2rem; font-weight:700;
  border:2px solid rgba(201,168,76,.5);
}
.detail-hero h1 {
  font-family:var(--font-sc); color:var(--white);
  font-size:1.8rem; line-height:1.4; margin-bottom:8px;
  text-shadow:0 2px 12px rgba(0,0,0,.3);
}
.detail-sub {
  color:rgba(255,255,255,.7); font-size:.85rem; line-height:1.6;
}
.detail-badge {
  display:inline-block; padding:4px 14px; border-radius:12px;
  font-size:.72rem; font-weight:600; margin-bottom:12px;
}
.detail-badge.ongoing { background:rgba(201,168,76,.9); color:var(--ink); }
.detail-badge.upcoming { background:rgba(181,50,10,.9); color:var(--white); }
.detail-badge.ended { background:rgba(150,150,150,.8); color:var(--white); }
.detail-badge.tag-badge { background:rgba(201,168,76,.85); color:var(--ink); }
.detail-tag {
  display:inline-block; padding:4px 12px; margin:3px 4px 3px 0;
  background:rgba(201,168,76,.12); color:var(--gold-dk);
  border-radius:12px; font-size:.78rem;
}
.detail-content { padding:32px 36px 48px; }
.detail-meta-grid {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:16px; margin-bottom:32px; padding:24px;
  background:var(--cream); border-radius:var(--radius);
}
.detail-meta-item {
  display:flex; flex-direction:column; gap:4px;
}
.meta-label { font-size:.72rem; color:var(--gray); text-transform:uppercase; letter-spacing:.05em; }
.meta-price { color:var(--vermillion); font-weight:700; font-family:var(--font-sc); }
.detail-section { margin-bottom:28px; }
.detail-section h3 {
  font-family:var(--font-sc); font-size:1.1rem;
  margin-bottom:16px; padding-left:14px;
  border-left:3px solid var(--gold);
}
.detail-desc {
  font-size:.88rem; color:var(--ink-md);
  line-height:2; text-align:justify;
}
.detail-hl-list {
  list-style:none; padding:0;
}
.detail-hl-item {
  position:relative; padding:10px 0 10px 24px;
  font-size:.88rem; color:var(--ink-md); line-height:1.7;
  border-bottom:1px solid var(--cream-dk);
}
.detail-hl-item:last-child { border-bottom:none; }
.detail-hl-item::before {
  content:''; position:absolute; left:0; top:18px;
  width:8px; height:8px; border-radius:50%;
  background:var(--gold); opacity:.6;
}
.detail-tags { display:flex; flex-wrap:wrap; gap:4px; }
.detail-actions {
  display:flex; flex-direction:column; gap:10px;
  padding-top:24px; border-top:1px solid var(--cream-dk);
}
.detail-actions .btn-gold,
.detail-actions .btn-outline-dark,
.detail-actions a.btn-outline-dark { text-align:center; display:block; }

/* 文章正文 */
.detail-article-body { max-width:100%; }
.detail-article-p {
  font-size:.9rem; color:var(--ink-md); line-height:2;
  text-align:justify; margin-bottom:18px;
}
.detail-article-p:first-child::first-letter {
  font-family:var(--font-sc); font-size:2.4rem;
  float:left; margin-right:8px; margin-top:4px;
  color:var(--gold); line-height:1;
}

/* 关联作品卡片 */
.detail-related-works { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.detail-rw-card {
  display:flex; gap:12px; padding:12px;
  background:var(--cream); border-radius:var(--radius);
  transition:all var(--transition); border:1px solid transparent;
}
.detail-rw-card:hover {
  border-color:var(--gold); background:rgba(201,168,76,.06);
  transform:translateY(-1px);
}
.detail-rw-thumb {
  width:56px; height:56px; border-radius:4px; flex-shrink:0;
}
.detail-rw-info {
  display:flex; flex-direction:column; justify-content:center; gap:2px;
}
.detail-rw-info strong { font-size:.82rem; color:var(--ink); }
.detail-rw-info span { font-size:.72rem; color:var(--gray); }

/* 可点击的作品标签 */
.detail-tag-link { cursor:pointer; transition:all var(--transition); }
.detail-tag-link:hover {
  background:var(--gold) !important; color:var(--ink) !important;
}

/* 艺术家详情 · 代表作品卡片网格 */
.artist-works-grid {
  display:grid; grid-template-columns:repeat(2,1fr); gap:10px;
}
.artist-work-card {
  background:var(--cream); border-radius:var(--radius);
  overflow:hidden; cursor:pointer;
  border:1px solid transparent;
  transition:all var(--transition);
}
.artist-work-card:hover {
  border-color:var(--gold); background:rgba(201,168,76,.06);
  transform:translateY(-1px);
}
.artist-work-card-img {
  width:100%; height:160px; background:#0d0d0d;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden; position:relative;
}
.artist-work-card-img img {
  width:100%; height:100%; object-fit:cover; cursor:zoom-in;
}
.artist-work-card-img .no-image-icon {
  font-size:2rem; opacity:.35; color:rgba(255,255,255,.5);
}
.artist-work-card-info {
  padding:10px 12px;
}
.artist-work-card-info h5 {
  font-family:var(--font-sc); font-size:.82rem; color:var(--ink);
  margin-bottom:3px;
}
.artist-work-card-info p {
  font-size:.7rem; color:var(--gray);
}

/* 搜索栏（样式已迁移到 global.css） */

/* 搜索结果面板（样式已迁移到 global.css） */

/* 响应式搜索（样式已迁移到 global.css） */
@media (max-width:1024px) {
  .detail-related-works { grid-template-columns:1fr; }
}

/* ===== 图片持续缩放查看器 ===== */
.image-zoom-overlay {
  position:fixed; inset:0; z-index:9999;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  user-select:none; -webkit-user-select:none;
}
.image-zoom-bg {
  position:absolute; inset:0;
  background:rgba(0,0,0,.94); backdrop-filter:blur(16px);
}

/* 顶部工具栏 */
.image-zoom-toolbar {
  position:absolute; top:16px; left:50%; transform:translateX(-50%);
  z-index:10;
  display:flex; align-items:center; gap:6px;
  padding:8px 16px;
  background:rgba(20,20,20,.75); backdrop-filter:blur(10px);
  border-radius:24px; border:1px solid rgba(255,255,255,.08);
  box-shadow:0 4px 24px rgba(0,0,0,.4);
}
.iz-btn {
  width:36px; height:36px; border-radius:50%;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1);
  color:rgba(255,255,255,.7); font-size:.95rem; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:all .18s;
}
.iz-btn:hover {
  background:rgba(201,168,76,.18); border-color:rgba(201,168,76,.4);
  color:var(--gold);
}
.iz-info {
  font-size:.78rem; color:rgba(255,255,255,.55);
  min-width:48px; text-align:center; font-variant-numeric:tabular-nums;
}

/* 视口（裁剪 + 交互区） */
.image-zoom-viewport {
  position:relative; z-index:1;
  width:100vw; height:100vh;
  overflow:hidden; cursor:grab;
  display:flex; align-items:center; justify-content:center;
}
.image-zoom-viewport:active { cursor:grabbing; }

.image-zoom-img {
  display:block;
  max-width:92vw; max-height:92vh; object-fit:contain;
  border-radius:4px; box-shadow:0 8px 60px rgba(0,0,0,.5);
  transform-origin:center center;
  transition:transform .05s linear;
  pointer-events:none; /* 让事件穿透到 viewport */
}

.image-zoom-close {
  position:absolute; top:20px; right:20px; z-index:10;
  width:44px; height:44px; border-radius:50%;
  background:rgba(255,255,255,.85); border:none;
  font-size:1.2rem; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 2px 12px rgba(0,0,0,.3);
  transition:all .2s;
}
.image-zoom-close:hover { background:var(--gold); color:#0d0d0d; }

/* 作品详情多图缩略图 */
.detail-hero-image {
  position:relative; min-height:260px;
  display:flex; align-items:flex-end; justify-content:center;
  background:#0d0d0d; overflow:hidden;
}
.detail-hero-image > img:first-child {
  max-width:100%; max-height:420px; object-fit:contain;
  display:block;
}
.detail-image-zoom {
  position:absolute; right:18px; bottom:18px; z-index:3;
  display:flex; align-items:center; gap:9px;
  min-height:42px; padding:0 16px;
  border:1px solid rgba(255,255,255,.28); border-radius:22px;
  background:rgba(13,13,13,.76); color:#fff;
  backdrop-filter:blur(10px); box-shadow:0 6px 24px rgba(0,0,0,.3);
  font-size:.78rem; letter-spacing:.04em; cursor:pointer;
  transition:background .2s,border-color .2s,color .2s,transform .2s;
}
.detail-image-zoom:hover,
.detail-image-zoom:focus-visible {
  border-color:rgba(201,168,76,.7); background:rgba(13,13,13,.92);
  color:var(--gold); transform:translateY(-1px); outline:none;
}
.detail-image-zoom .search-icon { width:14px; height:14px; flex-basis:14px; }

/* ===== 作品高清缩放查看器 ===== */
.artwork-zoom-viewer {
  position:fixed; inset:0; z-index:10000;
  display:none; overflow:hidden;
  color:#fff; background:#080808;
}
.artwork-zoom-viewer.open { display:block; }
.artwork-zoom-backdrop {
  position:absolute; inset:0;
  background:rgba(8,8,8,.98);
}
.artwork-zoom-title {
  position:absolute; top:22px; left:24px; z-index:4;
  max-width:calc(100vw - 150px); overflow:hidden;
  color:rgba(255,255,255,.72); font-family:var(--font-sc);
  font-size:.92rem; text-overflow:ellipsis; white-space:nowrap;
}
.artwork-zoom-close {
  position:absolute; top:18px; right:20px; z-index:5;
  width:46px; height:46px; border:1px solid rgba(255,255,255,.16);
  border-radius:50%; background:rgba(255,255,255,.92);
  color:#111; font-size:1.2rem; cursor:pointer;
  box-shadow:0 4px 18px rgba(0,0,0,.3);
  transition:background .2s,color .2s,transform .2s;
}
.artwork-zoom-close:hover,
.artwork-zoom-close:focus-visible {
  background:var(--gold); color:var(--ink); transform:scale(1.04); outline:none;
}
.artwork-zoom-viewport {
  position:absolute; inset:74px 24px 116px;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden; touch-action:none; cursor:default;
}
.artwork-zoom-viewport.can-pan { cursor:grab; }
.artwork-zoom-viewport.can-pan:active { cursor:grabbing; }
.artwork-zoom-stage {
  position:relative; flex:none;
  transform-origin:center center; will-change:transform;
  user-select:none; -webkit-user-drag:none;
}
.artwork-zoom-image {
  display:block; width:100%; height:100%;
  object-fit:contain; opacity:0; pointer-events:none;
  transition:opacity .18s ease;
  user-select:none; -webkit-user-drag:none;
}
.artwork-zoom-image.loaded { opacity:1; }
.artwork-zoom-watermark {
  position:absolute; z-index:3; height:auto;
  opacity:.32; pointer-events:none; user-select:none; -webkit-user-drag:none;
  filter:drop-shadow(0 1px 1px rgba(255,255,255,.26));
}
.artwork-zoom-status {
  position:absolute; top:50%; left:50%; z-index:2;
  transform:translate(-50%,-50%);
  color:rgba(255,255,255,.68); font-size:.82rem;
}
.artwork-zoom-controls {
  position:absolute; left:50%; bottom:48px; z-index:5;
  display:flex; align-items:center; gap:8px;
  transform:translateX(-50%);
  padding:8px; border:1px solid rgba(255,255,255,.1);
  border-radius:28px; background:rgba(28,28,28,.88);
  backdrop-filter:blur(12px); box-shadow:0 8px 30px rgba(0,0,0,.36);
}
.artwork-zoom-controls button {
  min-width:38px; height:38px; padding:0 12px;
  border:1px solid rgba(255,255,255,.1); border-radius:19px;
  background:rgba(255,255,255,.06); color:rgba(255,255,255,.84);
  font-size:1rem; cursor:pointer; transition:background .18s,color .18s,border-color .18s;
}
.artwork-zoom-controls button:hover,
.artwork-zoom-controls button:focus-visible {
  border-color:rgba(201,168,76,.5); background:rgba(201,168,76,.16);
  color:var(--gold); outline:none;
}
.artwork-zoom-controls .artwork-zoom-reset {
  min-width:58px; font-size:.72rem;
}
#artworkZoomScale {
  min-width:58px; color:rgba(255,255,255,.7);
  font-size:.78rem; text-align:center; font-variant-numeric:tabular-nums;
}
.artwork-zoom-help {
  position:absolute; bottom:18px; left:50%; z-index:4;
  transform:translateX(-50%);
  color:rgba(255,255,255,.38); font-size:.68rem; white-space:nowrap;
}
.detail-hero-image .detail-hero-inner {
  position:absolute; bottom:0; left:0; right:0;
  background:linear-gradient(to top,rgba(13,13,13,.82),transparent);
  padding:24px 32px; z-index:2;
}
.detail-thumbs {
  display:flex; gap:8px; padding:12px 32px 20px;
  background:var(--cream); overflow-x:auto;
}
.detail-thumb {
  width:72px; height:72px; object-fit:cover;
  border-radius:4px; cursor:pointer;
  border:2px solid transparent; opacity:.7;
  transition:all .2s; flex-shrink:0;
}
.detail-thumb:hover { opacity:1; }
.detail-thumb.active {
  border-color:var(--gold); opacity:1;
  box-shadow:0 2px 8px rgba(201,168,76,.3);
}

/* ===== 艺术家详情 · 代表作品网格 ===== */
.artist-works-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 8px;
}
.artist-work-card {
  background: var(--cream);
  border-radius: 10px;
  overflow: hidden;
  cursor: pointer;
  border: 1px solid var(--cream-dk);
  transition: box-shadow .2s, transform .2s;
}
.artist-work-card:hover {
  box-shadow: var(--shadow-lg);
  transform: translateY(-2px);
}
.artist-work-card-img {
  width: 100%;
  aspect-ratio: 4 / 3;
  background: var(--ink-lt);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  position: relative;
}
.artist-work-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  cursor: zoom-in;
  transition: opacity .3s, transform .3s;
}
.artist-work-card-img img:hover {
  opacity: .88;
  transform: scale(1.04);
}
.artist-work-card-img .no-image-icon {
  font-size: 2.4rem;
  opacity: .25;
}
.artist-work-card-info {
  padding: 14px 16px;
}
.artist-work-card-info h5 {
  font-family: var(--font-sc);
  font-size: .9rem;
  color: var(--ink);
  margin: 0 0 4px;
}
.artist-work-card-info p {
  font-size: .75rem;
  color: var(--gray);
  margin: 0;
}

/* ===== Wiki页面响应式 ===== */
@media (max-width:640px) {
  .wiki-hero { padding: 80px 20px 48px; }
  .wiki-hero p { font-size: .88rem; }
  .era-bar, .filter-bar, .cat-tabs { top: 56px; }
  .tl-stats { padding: 14px 16px; }
  .tl-stats-inner { gap: 10px; }
  .tl-stat-num { font-size: 1.4rem; }
  .tl-stat-label { font-size: .7rem; }
  .timeline-wrap { padding: 36px 16px 56px; }
  .timeline-wrap::before { left: calc(16px + 23px); }
  .era-block { margin-bottom: 36px; }
  .era-dot { width: 36px; height: 36px; font-size: .9rem; }
  .era-title-box h2 { font-size: 1.05rem; }
  .era-title-box p { font-size: .72rem; }
  .masters-wrap { padding: 28px 16px 56px; }
  .masters-section { margin-bottom: 36px; }
  .masters-section-title h2 { font-size: 1.1rem; }
  .masters-grid { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
  .schools-section { padding: 28px 16px 56px; }
  .schools-grid { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
  .techniques-wrap { padding: 28px 16px 56px; }
  .techniques-grid { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
  .era-bar-inner, .filter-bar-inner { padding: 0 16px; }
  .cat-tabs-inner { padding: 0 16px; }
  .cat-tab { padding: 14px 18px; font-size: .82rem; }
}
@media (max-width:480px) {
  .wiki-hero { padding: 64px 12px 36px; }
  .wiki-hero h1 { font-size: 1.6rem; letter-spacing: .1em; }
  .wiki-hero p { font-size: .78rem; }
  .wiki-hero .back-btn { font-size: .78rem; margin-bottom: 16px; }
  .tl-stats { padding: 12px; }
  .tl-stats-inner { gap: 8px; justify-content: center; }
  .tl-stat-num { font-size: 1.2rem; }
  .tl-stat-label { font-size: .65rem; }
  .timeline-wrap { padding: 24px 10px 40px; }
  .timeline-wrap::before { left: calc(10px + 18px); }
  .era-block { margin-bottom: 28px; }
  .era-header { gap: 10px; margin-bottom: 20px; }
  .era-dot { width: 30px; height: 30px; font-size: .75rem; }
  .era-title-box h2 { font-size: .92rem; }
  .era-badge { font-size: .68rem; padding: 2px 8px; margin-left: 6px; }
  .masters-wrap, .schools-section, .techniques-wrap { padding: 20px 10px 40px; }
  .masters-section-title h2 { font-size: .95rem; }
  .masters-grid { grid-template-columns: 1fr; gap: 12px; }
  .school-card-head { padding: 16px 16px 12px; }
  .school-card-body { padding: 0 16px 14px; }
  .school-card-reps { padding: 10px 16px 14px; font-size: .74rem; }
  .tech-card-head { padding: 14px 16px 10px; }
  .tech-card-body { padding: 10px 16px; }
  .tech-card-body p { font-size: .78rem; }
  .era-bar-inner, .filter-bar-inner, .cat-tabs-inner { padding: 0 10px; gap: 6px; }
  .era-btn, .flt-btn { padding: 5px 14px; font-size: .75rem; }
  .cat-tab { padding: 12px 14px; font-size: .76rem; }
  .tl-item-header { gap: 6px; }
  .tl-item-title { font-size: .82rem; }
  .tl-item-desc { font-size: .72rem; }
}

/* 响应式 */
@media (max-width:768px) {
  .detail-panel { max-width:100vw; width:100vw; }
  .detail-hero { min-height:200px; padding:40px 24px 28px; }
  .detail-hero h1 { font-size:1.4rem; }
  .detail-content { padding:24px 20px 40px; }
  .detail-meta-grid { grid-template-columns:repeat(2,1fr); padding:16px; }
  .detail-artist-avatar { width:64px; height:64px; font-size:1.6rem; }
  .detail-hero-image { min-height:200px; }
  .detail-hero-image > img:first-child { max-height:300px; }
  .detail-thumbs { padding:10px 20px 16px; }
  .detail-thumb { width:56px; height:56px; }
  .detail-image-zoom { right:12px; bottom:12px; min-height:38px; padding:0 14px; }
  .artwork-zoom-title { top:18px; left:16px; }
  .artwork-zoom-close { top:12px; right:12px; width:42px; height:42px; }
  .artwork-zoom-viewport { inset:66px 10px 108px; }
  .artwork-zoom-controls { bottom:42px; }
}
@media (max-width:480px) {
  .detail-meta-grid { grid-template-columns:1fr 1fr; gap:12px; }
  .detail-actions { flex-direction:column; }
  .artist-works-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .artist-work-card-img { aspect-ratio: 1 / 1; }
  .artist-work-card-info { padding: 10px 12px; }
}
