/* ══════════════════════════════════════════════════════════════
   COMMUNITY GALLERY — Redesigned v3.0
   ══════════════════════════════════════════════════════════════ */

/* ── Avatar Image Support (Discord avatars across community pages) ── */
.community-card__avatar--img,
.detail-author__avatar--img,
.comment__avatar--img,
.comment-compose__avatar--img {
  padding: 0 !important;
  overflow: hidden;
  border-radius: 50%;
}
.community-card__avatar--img img,
.detail-author__avatar--img img,
.comment__avatar--img img,
.comment-compose__avatar--img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
  display: block;
}

/* ── Gallery Grid ── */
.community-grid {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:1.5rem; margin-top:1.75rem;
}
@media (max-width: 600px) {
  .community-grid {
    grid-template-columns: 1fr;
  }
}

/* ── Base card ── */
.community-card {
  background:linear-gradient(165deg, rgba(14,14,18,0.75) 0%, rgba(10,10,14,0.65) 40%, rgba(8,8,12,0.7) 100%);
  border:1px solid var(--border-card);
  overflow:hidden; position:relative; display:flex; flex-direction:column;
  transition:transform 0.5s cubic-bezier(.32,.72,0,1), box-shadow 0.5s cubic-bezier(.32,.72,0,1), border-color 0.4s;
  cursor:pointer; text-decoration:none; color:inherit;
  box-shadow:0 2px 12px rgba(0,0,0,0.2), inset 0 1px 0 rgba(255,255,255,0.04);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
}
.community-card:hover {
  border-color:rgba(184,68,90,0.12); transform:translateY(-6px);
  box-shadow:0 16px 48px rgba(0,0,0,0.35), 0 0 1px rgba(184,68,90,0.1), 0 0 0 1px rgba(192,168,122,0.05), inset 0 1px 0 rgba(255,255,255,0.04);
}

/* Image wrap */
.community-card__img-wrap { position:relative; overflow:hidden; }
.community-card__img {
  width:100%; aspect-ratio:16/10; object-fit:cover; display:block;
  filter:brightness(0.75) saturate(0.9);
  transition:filter 0.6s cubic-bezier(.32,.72,0,1), transform 0.6s cubic-bezier(.32,.72,0,1);
  image-rendering:auto;
  -webkit-backface-visibility:hidden; backface-visibility:hidden;
  transform:translateZ(0); will-change:transform;
}
.community-card:hover .community-card__img {
  filter:brightness(0.92) saturate(1.05); transform:scale(1.04);
}
/* Image count badge */
.community-card__imgcount {
  position:absolute; top:0.65rem; right:0.65rem; z-index:3;
  font-family:var(--font-label); font-size:0.42rem; letter-spacing:0.12em;
  color:rgba(220,216,208,0.85); background:rgba(6,6,10,0.72);
  border:1px solid rgba(160,160,170,0.12); padding:0.2em 0.55em;
  backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);
}
/* Size badge on card image */
.community-card__size-badge {
  position:absolute; top:0.65rem; left:0.65rem; z-index:3;
  font-family:var(--font-label); font-size:0.4rem; letter-spacing:0.15em;
  text-transform:uppercase; padding:0.2em 0.55em; border:1px solid;
  background:rgba(6,6,10,0.72); backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);
}

/* Card body */
.community-card__body { padding:1.25rem 1.4rem 1.1rem; flex:1; display:flex; flex-direction:column; }
.community-card__house {
  font-family:var(--font-display); font-size:0.98rem; letter-spacing:0.1em;
  color:#e0dcd4; line-height:1.35; margin-bottom:0.35rem;
  text-shadow:0 1px 4px rgba(0,0,0,0.3);
}
.community-card__meta-row {
  display:flex; align-items:center; gap:0.5rem; flex-wrap:wrap;
  margin-bottom:0.5rem;
}
.community-card__server {
  font-family:var(--font-label); font-size:0.48rem; letter-spacing:0.2em;
  color:var(--text-dim); text-transform:uppercase;
}
.community-card__style-tag {
  font-family:var(--font-label); font-size:0.4rem; letter-spacing:0.12em;
  color:rgba(192,158,230,0.7); border:1px solid rgba(192,158,230,0.2);
  padding:0.1em 0.45em; text-transform:uppercase;
}
.community-card__desc {
  font-family:var(--font-body); font-size:0.92rem; color:#a09c94;
  line-height:1.65; flex:1;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  font-style:italic;
}

/* Card footer with author + stats */
.community-card__footer {
  display:flex; align-items:center; gap:0.55rem;
  margin-top:auto; padding-top:0.9rem;
  border-top:1px solid rgba(160,150,130,.08);
  background:linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.08) 100%);
  margin-left:-1.4rem; margin-right:-1.4rem; padding-left:1.4rem; padding-right:1.4rem;
  padding-bottom:0.15rem;
}
.community-card__avatar { font-size:0.7rem; width:16px; height:16px; min-width:16px; display:inline-flex; align-items:center; justify-content:center; line-height:1; }
.community-card__name {
  font-family:var(--font-label); font-size:0.52rem;
  letter-spacing:0.12em; color:var(--text-secondary); flex:1; min-width:0;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.community-card__badge {
  font-family:var(--font-label); font-size:0.38rem;
  letter-spacing:0.12em; padding:0.12em 0.45em; border:1px solid;
}
.community-card__guild-badge {
  font-size:0.65rem; text-decoration:none;
  color:var(--guild-badge-color, #a09c94); opacity:.7;
  transition:opacity .2s; margin-left:.2rem; flex-shrink:0;
}
.community-card__guild-badge:hover { opacity:1; }
.card-stats { display:flex; gap:0.5rem; margin-left:auto; flex-shrink:0; }
.card-stat {
  font-family:var(--font-label); font-size:0.42rem;
  letter-spacing:0.08em; color:var(--text-dim);
  display:inline-flex; align-items:center; gap:0.2rem;
}
.card-stat--likes { color:rgba(200,130,140,0.7); }
.card-stat--comments { color:rgba(140,170,200,0.7); }

/* ── Featured card ── */
.community-card--featured {
  border-color:rgba(192,158,230,0.25);
  background:linear-gradient(145deg, rgba(14,10,22,0.8) 0%, rgba(10,10,14,0.7) 100%);
  box-shadow:
    0 0 0 1px rgba(192,158,230,0.08),
    0 4px 20px rgba(110,60,160,0.1),
    inset 0 0 50px rgba(130,80,180,0.03);
  overflow:visible;
}
.community-card--featured:hover {
  border-color:rgba(192,158,230,0.5);
  box-shadow:
    0 16px 52px rgba(110,60,160,0.35),
    0 0 0 1px rgba(192,158,230,0.2),
    0 0 80px rgba(140,80,200,0.08);
}

/* ── Featured: Animated shimmer top-bar ── */
.community-card--featured::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2px; z-index:5;
  background:linear-gradient(90deg,
    transparent 0%,
    rgba(212,180,255,0.4) 20%,
    rgba(255,220,150,0.7) 40%,
    rgba(212,180,255,0.8) 50%,
    rgba(255,220,150,0.7) 60%,
    rgba(212,180,255,0.4) 80%,
    transparent 100%);
  background-size:200% 100%;
  animation:featuredShimmer 3.5s ease-in-out infinite;
}

/* ── Featured: Ambient glow aura (::after pseudo) ── */
.community-card--featured::after {
  content:''; position:absolute; inset:-1px; z-index:-1;
  border-radius:inherit; pointer-events:none;
  background:linear-gradient(145deg,
    rgba(192,158,230,0.08) 0%,
    rgba(140,80,200,0.03) 40%,
    rgba(212,176,96,0.04) 70%,
    rgba(192,158,230,0.06) 100%);
  opacity:0; transition:opacity 0.5s cubic-bezier(.32,.72,0,1);
}
.community-card--featured:hover::after { opacity:1; }

@keyframes featuredShimmer {
  0%   { background-position:200% 0; }
  100% { background-position:-200% 0; }
}

/* ── Featured: Pulsing corner ornaments ── */
.featured-corner {
  position:absolute; z-index:4; color:rgba(192,158,230,0.35);
  font-size:0.65rem; line-height:1; pointer-events:none; user-select:none;
  transition:color 0.4s, text-shadow 0.4s, transform 0.4s;
}
.community-card--featured:hover .featured-corner {
  color:rgba(212,180,255,0.85);
  text-shadow:0 0 8px rgba(192,158,230,0.5);
  transform:scale(1.15);
}
.featured-corner--tl { top:0.5rem; left:0.55rem; }
.featured-corner--tr { top:0.5rem; right:0.55rem; }
.featured-corner--bl { bottom:0.5rem; left:0.55rem; }
.featured-corner--br { bottom:0.5rem; right:0.55rem; }

/* ── Featured: Animated corner pulse ── */
.community-card--featured .featured-corner {
  animation:cornerPulse 3s ease-in-out infinite;
}
.featured-corner--tr, .featured-corner--bl {
  animation-delay:1.5s !important;
}
@keyframes cornerPulse {
  0%, 100% { opacity:0.4; }
  50%      { opacity:0.8; }
}

/* ── Featured: Label strip with glow ── */
.featured-strip {
  position:absolute; top:0.9rem; left:0; z-index:4;
  font-family:var(--font-label); font-size:0.42rem; letter-spacing:0.2em; text-transform:uppercase;
  color:#c09ee6;
  background:linear-gradient(90deg,rgba(14,8,24,0.94),rgba(50,20,70,0.88),rgba(30,12,50,0.92));
  border:1px solid rgba(158,126,192,0.25); border-left:none;
  padding:0.25em 0.8em 0.25em 0.6em;
  box-shadow:2px 0 14px rgba(110,60,160,0.25), 0 0 20px rgba(130,80,180,0.08);
  transition:box-shadow 0.4s, color 0.4s;
}
.community-card--featured:hover .featured-strip {
  color:#d8c0f8;
  box-shadow:2px 0 20px rgba(130,80,200,0.4), 0 0 30px rgba(140,80,200,0.12);
}
.featured-strip::before { content:'✦ '; opacity:0.75; }

/* ── Featured: Image treatment ── */
.community-card--featured .community-card__img {
  filter:brightness(0.72) saturate(0.9) hue-rotate(-3deg);
  transition:filter 0.6s cubic-bezier(.32,.72,0,1), transform 0.6s cubic-bezier(.32,.72,0,1);
}
.community-card--featured:hover .community-card__img {
  filter:brightness(0.88) saturate(1.08);
  transform:scale(1.03);
}

/* ── Featured: Text enhancements ── */
.community-card--featured .community-card__house {
  color:#e8e0f8;
  text-shadow:0 1px 8px rgba(130,80,180,0.15);
}
.community-card--featured .community-card__footer {
  border-top-color:rgba(130,80,180,0.18);
}

/* ── Featured: Style tag glow ── */
.community-card--featured .community-card__style-tag {
  color:rgba(192,158,230,0.8);
  border-color:rgba(192,158,230,0.25);
  box-shadow:0 0 6px rgba(130,80,180,0.1);
}

/* ── Card action group (like + fav) ── */
.card-action-group {
  position:absolute; bottom:0.55rem; right:0.55rem; z-index:3;
  display:flex; gap:0.25rem;
}
.card-like-btn {
  background:rgba(6,6,10,0.78); border:1px solid rgba(180,60,80,0.22);
  color:rgba(200,130,140,0.75); font-family:var(--font-label);
  font-size:0.42rem; letter-spacing:0.08em;
  padding:0.22em 0.55em; cursor:pointer;
  display:inline-flex; align-items:center; gap:0.25rem;
  transition:all 0.25s cubic-bezier(.32,.72,0,1); backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);
}
.card-like-btn:hover { border-color:rgba(220,80,110,0.5); color:#e08090; }
.card-like-btn.liked { border-color:rgba(220,80,110,0.5); color:#e06878; background:rgba(150,30,50,0.2); }
.card-fav-btn {
  background:rgba(6,6,10,0.78); border:1px solid rgba(180,140,40,0.22);
  color:rgba(200,170,90,0.65); font-family:var(--font-label); font-size:0.52rem;
  padding:0.18em 0.4em; cursor:pointer;
  display:inline-flex; align-items:center; transition:all 0.25s cubic-bezier(.32,.72,0,1);
  line-height:1; backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);
}
.card-fav-btn:hover { border-color:rgba(220,180,60,0.5); color:#d4a830; }
.card-fav-btn.saved { border-color:rgba(220,180,60,0.5); color:#d4a830; background:rgba(140,110,20,0.16); }

/* ── Gallery Header ── */
.gallery-header {
  text-align:center; padding-top:1rem;
}
.gallery-header__title {
  font-family:var(--font-display); font-size:clamp(1rem,2.8vw,1.5rem);
  letter-spacing:0.15em; color:#e0dcd4;
  text-shadow:0 2px 12px rgba(0,0,0,0.3), 0 0 40px rgba(130,80,180,0.05);
}
.gallery-header__subtitle {
  font-family:var(--font-body); font-style:italic;
  color:#a8a49c; font-size:1rem; margin-top:0.55rem;
  line-height:1.6;
}

/* ── Guild Banners ── */
/* ── Guild filter pills ── */
.guild-pills {
  display:flex; flex-wrap:wrap; gap:0.5rem;
  justify-content:center; margin-top:1.25rem; padding:0 0.5rem;
}
.guild-pill {
  display:inline-flex; align-items:center; gap:0.4rem;
  border:1px solid var(--gp-border); background:var(--gp-bg);
  text-decoration:none; color:inherit;
  padding:0.45rem 0.85rem;
  transition:all 0.3s cubic-bezier(.32,.72,0,1);
  position:relative; white-space:nowrap;
}
.guild-pill:hover {
  border-color:var(--gp-text);
  background:var(--gp-glow);
  box-shadow:0 4px 16px var(--gp-glow);
  transform:translateY(-1px);
}
.guild-pill--active {
  border-color:var(--gp-text);
  background:var(--gp-glow);
  box-shadow:0 2px 12px var(--gp-glow), inset 0 0 16px var(--gp-bg);
}
.guild-pill__icon {
  font-size:0.85rem; opacity:0.7; transition:opacity 0.25s;
  flex-shrink:0; line-height:1;
}
.guild-pill:hover .guild-pill__icon,
.guild-pill--active .guild-pill__icon { opacity:1; }
.guild-pill__name {
  font-family:var(--font-display); font-size:0.65rem;
  letter-spacing:0.08em; color:var(--gp-text);
}
.guild-pill__server {
  font-family:var(--font-label); font-size:0.4rem;
  letter-spacing:0.1em; text-transform:uppercase;
  color:var(--text-secondary); opacity:0.7;
}
.guild-pill__x {
  font-size:0.7rem; color:var(--gp-text); opacity:0.6;
  margin-left:0.15rem; transition:opacity 0.2s;
}
.guild-pill:hover .guild-pill__x { opacity:1; }
@media (max-width:640px) {
  .guild-pills { gap:0.35rem; }
  .guild-pill { padding:0.35rem 0.65rem; }
  .guild-pill__name { font-size:0.58rem; }
  .guild-pill__server { font-size:0.35rem; }
}

/* ── Gallery filter bar ── */
.gallery-filter-bar {
  display:flex; flex-direction:column; gap:0.6rem;
  margin-top:1.5rem; align-items:center;
  position:sticky; top:56px; z-index:50;
  padding:0.95rem 1.2rem;
  background:linear-gradient(180deg, rgba(8,8,10,0.92) 0%, rgba(6,6,8,0.88) 100%);
  backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(192,168,122,0.08);
  border-top:1px solid rgba(160,160,170,0.03);
  margin-left:-1.5rem; margin-right:-1.5rem; padding-left:1.5rem; padding-right:1.5rem;
  transition:border-color 0.3s, box-shadow 0.3s;
}
.gallery-filter-bar.scrolled {
  border-bottom-color:rgba(160,160,170,0.1);
  box-shadow:0 4px 20px rgba(0,0,0,0.3);
}
.gfb-row {
  display:flex; flex-wrap:wrap; gap:0.4rem;
  align-items:center; justify-content:center;
}
.gfb-divider {
  width:100%; max-width:600px;
  border:none; border-top:1px solid rgba(160,155,140,.08); margin:0.1rem 0;
}
.gfb-label {
  font-family:var(--font-label); font-size:0.42rem;
  letter-spacing:0.15em; text-transform:uppercase;
  color:rgba(160,155,140,.3); padding-right:0.1rem; white-space:nowrap;
}
.gallery-filter-bar .filter-sep { color:rgba(160,160,170,0.15); font-size:0.7rem; }
.filter-btn {
  font-family:var(--font-label); font-size:0.52rem; letter-spacing:0.18em;
  text-transform:uppercase; padding:0.45em 1.15em;
  border:1px solid var(--border-card); background:none;
  color:var(--text-dim); cursor:pointer; transition:all 0.3s cubic-bezier(.32,.72,0,1);
  text-decoration:none; display:inline-block;
  position:relative;
}
.filter-btn:hover {
  border-color:rgba(160,160,170,0.25); color:var(--text-primary);
  background:rgba(160,160,170,0.04);
}
.filter-btn.active {
  border-color:rgba(192,168,122,0.4); color:#c0a87a;
  background:rgba(192,168,122,0.06);
  box-shadow:0 0 12px rgba(192,168,122,0.08);
}
.filter-select {
  font-family:var(--font-label); font-size:0.48rem; letter-spacing:0.12em;
  text-transform:uppercase; padding:0.45em 1.8em 0.45em 0.9em;
  border:1px solid var(--border-card); background:rgba(10,10,14,0.75);
  color:var(--text-dim); cursor:pointer; appearance:none; -webkit-appearance:none;
  outline:none; transition:all 0.3s cubic-bezier(.32,.72,0,1);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23666'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 0.6em center; background-size:8px;
}
.filter-select:hover, .filter-select:focus {
  border-color:rgba(160,160,170,0.25); color:var(--text-primary);
  box-shadow:0 0 8px rgba(160,160,170,0.05);
}
.gallery-search-wrap {
  display:flex; align-items:center; border:1px solid var(--border-card);
  background:rgba(10,10,14,0.75); transition:border-color 0.3s; position:relative;
}
.gallery-search-wrap:focus-within { border-color:rgba(160,160,170,0.25); }
.gallery-search-icon {
  font-size:0.7rem; color:var(--text-dim);
  padding:0 0 0 0.55em; line-height:1; pointer-events:none; flex-shrink:0;
}
.gallery-search-input {
  font-family:var(--font-label); font-size:0.48rem; letter-spacing:0.1em;
  background:none; border:none; outline:none; color:var(--text-secondary);
  padding:0.4em 0.7em; width:130px;
}
.gallery-search-input::placeholder { color:var(--text-dim); }
.gallery-search-btn {
  background:none; border:none; border-left:1px solid var(--border-card);
  color:var(--text-dim); padding:0.4em 0.65em; cursor:pointer;
  font-size:0.7rem; line-height:1; transition:color 0.3s;
}
.gallery-search-btn:hover { color:var(--text-primary); }
.gallery-drop { min-width:240px; }
.gallery-results-info {
  font-family:var(--font-label); font-size:0.46rem;
  letter-spacing:0.1em; color:var(--text-dim);
  text-align:center; margin-top:0.65rem;
}

/* ── House name search dropdown ── */
.house-search-wrap { position:relative; }
.house-search-dropdown {
  display:none; position:absolute; top:100%; left:0; right:0; z-index:100;
  background:rgba(12,12,16,0.97); border:1px solid var(--border-card);
  border-top:none; max-height:260px; overflow-y:auto;
  scrollbar-width:thin; scrollbar-color:rgba(160,160,170,0.12) transparent;
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
}
.house-search-dropdown.active { display:block; }
.house-search-item {
  padding:0.55rem 0.9rem; cursor:pointer; display:flex; align-items:center; gap:0.65rem;
  transition:background 0.15s;
}
.house-search-item:hover, .house-search-item.hs-active { background:rgba(160,160,170,0.07); }
.house-search-item__name { font-family:var(--font-body); font-size:0.88rem; color:#dbd8d0; flex:1; }
.house-search-item__name em { font-style:normal; color:var(--text-primary); background:rgba(160,160,170,0.1); padding:0 2px; }
.house-search-item__size {
  font-family:var(--font-label); font-size:0.4rem; letter-spacing:0.12em;
  text-transform:uppercase; padding:0.12em 0.45em; border:1px solid;
}
.house-search-item__size--inn { color:#8a9aaa; border-color:rgba(138,154,170,0.25); }
.house-search-item__size--apartment { color:#8a9aaa; border-color:rgba(138,154,170,0.25); }
.house-search-item__size--small { color:#7ab47a; border-color:rgba(122,180,122,0.25); }
.house-search-item__size--medium { color:#c4a35a; border-color:rgba(196,163,90,0.25); }
.house-search-item__size--large { color:#c09ee6; border-color:rgba(192,158,230,0.25); }
.house-search-item__size--manor { color:#e0607a; border-color:rgba(224,96,122,0.25); }
.house-search-item__style { font-family:var(--font-label); font-size:0.38rem; letter-spacing:0.08em; color:var(--text-dim); }
.house-search-hint {
  padding:0.45rem 0.9rem; font-family:var(--font-label);
  font-size:0.4rem; letter-spacing:0.08em;
  color:var(--text-faint,rgba(160,160,170,0.3)); border-bottom:1px solid rgba(50,48,58,0.12);
}

/* ── Gallery View Toggle ── */
.gallery-view-toggle {
  display:flex; align-items:center; justify-content:space-between;
  margin-top:1rem; padding:0 0.15rem;
}
.gallery-view-toggle__info {
  font-family:var(--font-label); font-size:0.46rem;
  letter-spacing:0.1em; color:var(--text-dim);
}
.gallery-view-toggle__btns {
  display:flex; gap:0.25rem;
}
.gallery-view-btn {
  background:none; border:1px solid rgba(160,160,170,0.1);
  color:var(--text-dim); font-size:0.85rem;
  width:32px; height:32px; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:all 0.25s cubic-bezier(.32,.72,0,1); border-radius:6px;
}
.gallery-view-btn:hover { border-color:rgba(160,160,170,0.2); color:var(--text-secondary); }
.gallery-view-btn.active {
  border-color:rgba(192,158,230,0.3); color:#c09ee6;
  background:rgba(130,80,180,0.06);
}

/* ── List View Mode ── */
.community-grid--list {
  grid-template-columns:1fr !important;
  gap:0.6rem !important;
}
.community-grid--list .community-card {
  flex-direction:row; height:auto;
}
.community-grid--list .community-card__img-wrap {
  width:160px; flex-shrink:0;
}
.community-grid--list .community-card__img {
  aspect-ratio:16/10; height:100%; width:100%;
}
.community-grid--list .community-card__view-btn { display:none; }
.community-grid--list .community-card__img-wrap::after { display:none; }
.community-grid--list .community-card__body {
  padding:0.85rem 1rem; flex-direction:row; align-items:center; gap:1rem; flex-wrap:wrap;
}
.community-grid--list .community-card__house {
  font-size:0.88rem; flex:1; min-width:140px;
}
.community-grid--list .community-card__desc { display:none; }
.community-grid--list .community-card__footer {
  margin-top:0; padding-top:0; border-top:none;
}
.community-grid--list .community-card__meta-row { margin-bottom:0; }
@media (max-width:640px) {
  .community-grid--list .community-card { flex-direction:column; }
  .community-grid--list .community-card__img-wrap { width:100%; }
  .community-grid--list .community-card__body { flex-direction:column; align-items:flex-start; }
}

/* ── Gallery Card Scroll-in Animation ── */
.community-card.card-animate {
  opacity:0; transform:translateY(24px);
  transition:opacity 0.5s cubic-bezier(.32,.72,0,1), transform 0.5s cubic-bezier(.32,.72,0,1);
}
.community-card.card-animate.card-visible {
  opacity:1; transform:none;
}

/* ── Card Hover Quick-View Overlay ── */
.community-card__img-wrap::after {
  content:'';
  position:absolute; inset:0; z-index:2;
  background:rgba(6,6,8,0.45);
  opacity:0; transition:opacity 0.3s cubic-bezier(.32,.72,0,1);
  pointer-events:none;
}
.community-card:hover .community-card__img-wrap::after {
  opacity:1;
}
.community-card__view-btn {
  position:absolute; top:50%; left:50%; z-index:3;
  transform:translate(-50%,-50%) scale(0.85);
  font-family:var(--font-label); font-size:0.52rem;
  letter-spacing:0.16em; text-transform:uppercase;
  color:#e0dcd4; background:rgba(10,10,14,0.88);
  border:none;
  padding:0.6em 1.4em;
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  opacity:0; transition:opacity 0.3s cubic-bezier(.32,.72,0,1), transform 0.3s cubic-bezier(.32,.72,0,1);
  pointer-events:none;
  box-shadow:0 4px 16px rgba(0,0,0,0.5), 0 0 0 1px rgba(160,160,170,0.15);
}
.community-card:hover .community-card__view-btn {
  opacity:1; transform:translate(-50%,-50%) scale(1);
}

/* ── Active Filter Chips (inline, above grid) ── */
.gallery-active-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-items: center;
  justify-content: center;
  padding: 0.6rem 0 0.8rem;
}
.gallery-active-filters__count {
  font-family: var(--font-label, 'Inter', sans-serif);
  font-size: 0.55rem;
  letter-spacing: 0.08em;
  color: rgba(255,255,255,0.55);
  margin-right: 0.3rem;
}
.filter-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-family: var(--font-label, 'Inter', sans-serif);
  font-size: 0.5rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.8);
  background: rgba(212,176,96,0.06);
  border: 1px solid rgba(212,176,96,0.18);
  padding: 0.35em 0.7em;
  border-radius: 6px;
  text-decoration: none;
  transition: all 0.25s cubic-bezier(.32,.72,0,1);
}
.filter-chip:hover {
  border-color: rgba(200,80,100,0.4);
  color: #e06878;
  background: rgba(200,60,80,0.08);
}
.filter-chip--clear {
  border-color: rgba(200,80,100,0.2);
  color: rgba(200,130,140,0.7);
}
.filter-chip__x {
  font-size: 0.9em;
  opacity: 0.5;
  margin-left: 0.15em;
}

/* ── Gallery Empty State ── */
.gallery-empty {
  text-align:center; padding:5rem 1rem;
}
.gallery-empty__icon {
  font-size:2.5rem; margin-bottom:1rem; opacity:0.3;
}
.gallery-empty__text {
  font-family:var(--font-body); font-size:1.05rem;
  color:var(--text-dim); font-style:italic; margin-bottom:1.25rem;
}
.gallery-empty__actions {
  display:flex; justify-content:center; gap:0.75rem;
}

/* ── Detail View ── */
.detail-back {
  display:inline-flex; align-items:center; gap:0.45rem;
  font-family:var(--font-label); font-size:0.52rem;
  letter-spacing:0.18em; text-transform:uppercase;
  color:var(--text-dim); text-decoration:none; margin-bottom:1.5rem; transition:color 0.3s;
}
.detail-back:hover { color:var(--text-secondary); }
.detail-header { text-align:center; margin-bottom:2rem; }

/* ── Featured Build Badge (Detail View) ── */
.detail-featured-badge {
  display:inline-flex; align-items:center; gap:0.65rem;
  font-family:var(--font-label); font-size:0.5rem;
  letter-spacing:0.22em; text-transform:uppercase;
  color:#c09ee6; margin-bottom:0.6rem;
  padding:0.4em 1em;
  background:linear-gradient(90deg, transparent, rgba(130,80,180,0.06) 30%, rgba(130,80,180,0.08) 50%, rgba(130,80,180,0.06) 70%, transparent);
  border-top:1px solid rgba(192,158,230,0.12);
  border-bottom:1px solid rgba(192,158,230,0.12);
}
.detail-featured-badge__stars {
  font-size:0.55em; letter-spacing:0.3em;
  color:rgba(192,158,230,0.45);
  animation:starPulse 2.5s ease-in-out infinite;
}
.detail-featured-badge__stars:last-child { animation-delay:1.25s; }
.detail-featured-badge__text { color:#d0b8f0; }
@keyframes starPulse {
  0%, 100% { opacity:0.4; }
  50%      { opacity:0.9; }
}

/* ── Featured Detail: Enhanced title ── */
.detail-header--featured .detail-header__name {
  color:#e8e0f8;
  text-shadow:0 0 30px rgba(130,80,180,0.15), 0 2px 12px rgba(0,0,0,0.3);
}
.detail-header--featured .divider span {
  color:rgba(192,158,230,0.4);
}

/* ── Featured Detail: Gallery border glow ── */
.detail-header--featured + .detail-gallery-wrap .detail-gallery-main,
.detail-header--featured ~ .detail-gallery-wrap .detail-gallery-main {
  border-color:rgba(192,158,230,0.12);
}
.detail-header--featured + .detail-gallery-wrap .detail-gallery-main:hover,
.detail-header--featured ~ .detail-gallery-wrap .detail-gallery-main:hover {
  border-color:rgba(192,158,230,0.25);
  box-shadow:0 0 20px rgba(130,80,180,0.08);
}
.detail-header__name {
  font-family:var(--font-display); font-size:clamp(1.2rem,3vw,1.8rem);
  letter-spacing:0.15em; color:#dbd8d0;
}
.detail-header__meta {
  font-family:var(--font-label); font-size:0.52rem;
  letter-spacing:0.18em; text-transform:uppercase;
  color:var(--text-dim); margin-top:0.4rem;
  display:flex; align-items:center; justify-content:center; gap:0.5rem; flex-wrap:wrap;
}
.detail-header__meta-sep { color:rgba(160,160,170,0.15); }
.detail-header__desc {
  font-family:var(--font-body); font-size:1.05rem;
  color:#a09c94; line-height:1.8; max-width:620px;
  margin:1rem auto 0; font-style:italic;
}

/* ── Detail gallery with main + thumbnail strip ── */
.detail-gallery-wrap { margin:2rem 0; position:relative; }
.detail-gallery-counter {
  position:absolute; top:0.65rem; right:0.65rem; z-index:3;
  font-family:var(--font-label); font-size:0.46rem;
  letter-spacing:0.12em; color:rgba(220,216,208,0.8);
  background:rgba(6,6,10,0.75); border:1px solid rgba(160,160,170,0.12);
  padding:0.2em 0.6em; border-radius:6px;
  backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);
  pointer-events:none;
}
.detail-gallery-main {
  width:100%; max-height:520px; object-fit:contain;
  display:block; border:1px solid var(--border-card); cursor:pointer;
  background:rgba(6,6,10,0.5); margin-bottom:0.75rem;
  transition:border-color 0.3s;
  image-rendering:auto; -webkit-backface-visibility:hidden; backface-visibility:hidden;
  transform:translateZ(0); will-change:transform;
}
.detail-gallery-main:hover { border-color:rgba(160,160,170,0.2); }
.detail-gallery-thumbstrip {
  display:flex; gap:0.5rem; overflow-x:auto; padding-bottom:0.5rem;
  scrollbar-width:thin; scrollbar-color:rgba(160,160,170,0.1) transparent;
}
.detail-gallery-thumb {
  width:80px; height:60px; object-fit:cover; flex-shrink:0;
  border:2px solid transparent; cursor:pointer;
  filter:brightness(0.75) saturate(0.8); transition:all 0.3s cubic-bezier(.32,.72,0,1);
  image-rendering:auto; -webkit-backface-visibility:hidden; backface-visibility:hidden;
  transform:translateZ(0); will-change:transform;
}
.detail-gallery-thumb:hover { filter:brightness(0.95) saturate(1); }
.detail-gallery-thumb.active {
  border-color:rgba(192,158,230,0.5);
  filter:brightness(0.9) saturate(1);
}
/* Fallback grid for multi-image */
.detail-gallery {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:0.65rem; margin:2rem 0;
}
.detail-gallery__img {
  width:100%; height:auto; max-height:380px; object-fit:cover;
  display:block; border:1px solid var(--border-card); cursor:pointer;
  filter:brightness(0.85) saturate(0.92); transition:all 0.4s cubic-bezier(.32,.72,0,1);
}
.detail-gallery__img:hover {
  filter:brightness(0.92) saturate(1);
  border-color:rgba(160,160,170,0.18); transform:scale(1.008);
}

/* ── Author card ── */
.detail-author {
  display:flex; align-items:center; gap:0.75rem; padding:1.4rem;
  background:rgba(12,12,16,0.45); border:1px solid var(--border-card); margin-top:2rem;
}
.detail-author__avatar { font-size:2rem; }
.detail-author__info { flex:1; }
.detail-author__name {
  font-family:var(--font-display); font-size:0.85rem;
  letter-spacing:0.1em; color:#dbd8d0; text-decoration:none;
}
.detail-author__name:hover { color:var(--text-primary); }
.detail-author__title {
  font-family:var(--font-label); font-size:0.42rem;
  letter-spacing:0.12em; text-transform:uppercase;
  padding:0.12em 0.45em; border:1px solid; display:inline-block; margin-top:0.2rem;
}

/* ── Author stats panel ── */
.author-stats {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(100px,1fr));
  gap:0.5rem; margin-top:1rem; padding:1rem;
  background:rgba(10,10,14,0.4); border:1px solid var(--border-card);
}
.author-stat {
  text-align:center; padding:0.6rem 0.4rem;
}
.author-stat__value {
  font-family:var(--font-display); font-size:1.1rem;
  letter-spacing:0.05em; color:#dbd8d0; display:block;
}
.author-stat__label {
  font-family:var(--font-label); font-size:0.4rem;
  letter-spacing:0.15em; text-transform:uppercase;
  color:var(--text-dim); margin-top:0.2rem; display:block;
}

/* ── Actions bar ── */
.detail-actions {
  display:flex; gap:0.5rem; flex-wrap:wrap; align-items:center;
  margin-top:1.5rem; padding-top:1.5rem; border-top:1px solid var(--border-card);
}
.like-btn {
  display:inline-flex; align-items:center; gap:0.3rem;
  background:none; border:1px solid rgba(200,80,100,0.18);
  color:rgba(200,130,140,0.65); font-family:var(--font-label);
  font-size:0.46rem; letter-spacing:0.1em;
  padding:0.35em 0.7em; cursor:pointer; transition:all 0.25s cubic-bezier(.32,.72,0,1);
}
.like-btn:hover { border-color:rgba(220,80,110,0.45); color:#e08090; background:rgba(200,60,80,0.05); }
.like-btn.liked { border-color:rgba(220,80,110,0.45); color:#e06878; background:rgba(200,60,80,0.07); }
.like-btn__icon { font-size:0.85em; transition:transform 0.2s; }
.like-btn:hover .like-btn__icon, .like-btn.liked .like-btn__icon { transform:scale(1.2); }
.fav-btn {
  display:inline-flex; align-items:center; gap:0.3rem;
  background:none; border:1px solid rgba(200,160,40,0.2);
  color:rgba(200,170,90,0.6); font-family:var(--font-label);
  font-size:0.46rem; letter-spacing:0.1em;
  padding:0.35em 0.75em; cursor:pointer; transition:all 0.25s cubic-bezier(.32,.72,0,1);
}
.fav-btn:hover { border-color:rgba(220,180,60,0.45); color:#d4a830; background:rgba(200,160,40,0.05); }
.fav-btn--saved { border-color:rgba(220,180,60,0.45); color:#d4a830; background:rgba(200,160,40,0.07); }
.fav-btn__icon { font-size:0.9em; transition:transform 0.2s; }
.fav-btn:hover .fav-btn__icon, .fav-btn--saved .fav-btn__icon { transform:scale(1.15); }

/* ── Share buttons (8.6) ── */
.share-group {
  display:flex; gap:0.35rem; margin-left:auto; align-items:center;
}
.share-label {
  font-family:var(--font-label); font-size:0.4rem;
  letter-spacing:0.12em; text-transform:uppercase;
  color:var(--text-dim); margin-right:0.15rem;
}
.share-btn {
  display:inline-flex; align-items:center; justify-content:center;
  width:28px; height:28px; border:1px solid var(--border-card);
  background:rgba(10,10,14,0.5); color:var(--text-dim);
  cursor:pointer; transition:all 0.25s cubic-bezier(.32,.72,0,1); font-size:0.75rem; text-decoration:none;
}
.share-btn:hover { border-color:rgba(160,160,170,0.25); color:var(--text-secondary); background:rgba(160,160,170,0.04); }
.share-btn--copied { border-color:rgba(80,200,120,0.3) !important; color:#50c878 !important; }

/* ── Similar builds (8.4) ── */
.similar-builds {
  margin-top:3rem; padding-top:2rem;
  border-top:1px solid rgba(50,48,58,0.15);
}
.similar-builds__title {
  font-family:var(--font-label); font-size:0.55rem;
  letter-spacing:0.2em; text-transform:uppercase;
  color:var(--text-dim); text-align:center; margin-bottom:1.25rem;
}
.similar-builds__grid {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr));
  gap:0.75rem;
}
.similar-card {
  text-decoration:none; color:inherit; display:block;
  border:1px solid var(--border-card); overflow:hidden;
  transition:border-color 0.3s, transform 0.3s;
}
.similar-card:hover {
  border-color:rgba(160,160,170,0.18); transform:translateY(-4px);
  box-shadow:0 8px 24px rgba(0,0,0,0.35);
}
.similar-card__img {
  width:100%; height:100px; object-fit:cover; display:block;
  filter:brightness(0.75) saturate(0.85); transition:filter 0.4s, transform 0.4s;
}
.similar-card:hover .similar-card__img { filter:brightness(0.9) saturate(1); transform:scale(1.03); }
.similar-card__info { padding:0.55rem 0.65rem; }
.similar-card__name {
  font-family:var(--font-display); font-size:0.6rem;
  letter-spacing:0.06em; color:#dbd8d0; line-height:1.3;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.similar-card__author {
  font-family:var(--font-label); font-size:0.38rem;
  letter-spacing:0.1em; color:var(--text-dim); margin-top:0.15rem;
  display:flex; align-items:center; gap:0.25rem;
}
.similar-card__avatar { display:inline-flex; align-items:center; font-size:0.6rem; line-height:1; }
.similar-card__avatar--img { padding:0 !important; overflow:hidden; border-radius:50%; }
.similar-card__avatar--img img { border-radius:50%; object-fit:cover; display:block; }

/* ── Pagination (8.5) ── */
.gallery-pagination {
  display:flex; align-items:center; justify-content:center;
  gap:0.3rem; margin-top:2.5rem; padding-top:1.5rem;
  border-top:1px solid rgba(50,48,58,0.12);
}
.gallery-pagination__btn {
  font-family:var(--font-label); font-size:0.5rem;
  letter-spacing:0.12em; padding:0.4em 0.85em;
  border:1px solid var(--border-card); background:none;
  color:var(--text-dim); cursor:pointer; text-decoration:none;
  display:inline-block; transition:all 0.25s cubic-bezier(.32,.72,0,1);
}
.gallery-pagination__btn:hover {
  border-color:rgba(160,160,170,0.25); color:var(--text-primary);
}
.gallery-pagination__btn.active {
  border-color:rgba(192,158,230,0.35); color:#c09ee6;
  background:rgba(130,80,180,0.06);
}
.gallery-pagination__btn.disabled {
  opacity:0.3; pointer-events:none;
}
.gallery-pagination__dots {
  font-family:var(--font-label); font-size:0.5rem;
  color:var(--text-dim); letter-spacing:0.15em; padding:0 0.3rem;
}

/* ── Infinite scroll loader ── */
.infinite-loader {
  text-align:center; padding:2rem 0;
  font-family:var(--font-label); font-size:0.5rem;
  letter-spacing:0.15em; color:var(--text-dim); display:none;
}
.infinite-loader.active { display:block; }
.infinite-loader__spinner {
  display:inline-block; width:20px; height:20px;
  border:1px solid rgba(160,160,170,0.12);
  border-top-color:rgba(192,158,230,0.5);
  border-radius:50%; animation:spin 0.8s linear infinite; margin-right:0.5rem;
  vertical-align:middle;
}
@keyframes spin { to { transform:rotate(360deg); } }

/* ── Lightbox v2 (8.3) — zoom, swipe, counter, thumbnails ── */
.gl-lightbox {
  display:none; position:fixed; inset:0; z-index:99999;
  background:rgba(2,2,6,0.97); align-items:center; justify-content:center;
  flex-direction:column; cursor:pointer;
}
.gl-lightbox.active { display:flex; }
.gl-lightbox__toolbar {
  position:fixed; top:0; left:0; right:0; z-index:100001;
  display:flex; align-items:center; justify-content:space-between;
  padding:0.8rem 1.5rem;
  background:linear-gradient(180deg,rgba(2,2,6,0.85),transparent);
}
.gl-lightbox__counter {
  font-family:var(--font-label); font-size:0.52rem;
  letter-spacing:0.15em; color:rgba(200,196,188,0.7);
}
.gl-lightbox__actions { display:flex; gap:0.4rem; }
.gl-lightbox__btn {
  background:rgba(20,20,28,0.6); border:1px solid rgba(160,160,170,0.12);
  color:rgba(200,196,188,0.65); font-family:var(--font-label);
  font-size:0.6rem; padding:0.4em 0.7em; cursor:pointer;
  transition:all 0.25s cubic-bezier(.32,.72,0,1); line-height:1;
}
.gl-lightbox__btn:hover { border-color:rgba(160,160,170,0.25); color:rgba(200,196,188,0.9); }
.gl-lightbox__close {
  position:fixed; top:0.8rem; right:1.5rem; z-index:100002;
  background:none; border:1px solid rgba(160,160,170,0.15);
  color:var(--text-secondary); font-family:var(--font-label);
  font-size:0.55rem; letter-spacing:0.18em; padding:0.45rem 0.9rem; cursor:pointer;
  transition:all 0.25s cubic-bezier(.32,.72,0,1);
}
.gl-lightbox__close:hover { border-color:rgba(160,160,170,0.3); color:var(--text-primary); }
.gl-lightbox__stage {
  flex:1; display:flex; align-items:center; justify-content:center;
  width:100%; position:relative; overflow:hidden;
  touch-action:none; /* for gesture handling */
}
.gl-lightbox__stage img {
  max-width:90vw; max-height:82vh; object-fit:contain;
  user-select:none; -webkit-user-drag:none;
  transition:transform 0.15s ease-out;
}
.gl-lightbox__nav {
  position:fixed; top:50%; transform:translateY(-50%); z-index:100001;
  background:rgba(6,6,10,0.6); border:1px solid rgba(160,160,170,0.1);
  color:rgba(200,196,188,0.6); font-size:1.4rem; padding:0.7rem 0.9rem;
  cursor:pointer; line-height:1; transition:all 0.25s cubic-bezier(.32,.72,0,1);
  backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);
}
.gl-lightbox__nav:hover { border-color:rgba(160,160,170,0.2); color:var(--text-primary); }
.gl-lightbox__nav--prev { left:0.75rem; }
.gl-lightbox__nav--next { right:0.75rem; }
.gl-lightbox__thumbs {
  position:fixed; bottom:0; left:0; right:0; z-index:100001;
  display:flex; justify-content:center; gap:0.4rem;
  padding:0.6rem 1rem;
  background:linear-gradient(0deg,rgba(2,2,6,0.85),transparent);
  overflow-x:auto; scrollbar-width:none;
}
.gl-lightbox__thumbs::-webkit-scrollbar { display:none; }
.gl-lightbox__thumb {
  width:48px; height:36px; object-fit:cover; flex-shrink:0;
  border:1px solid rgba(160,160,170,0.1); cursor:pointer;
  filter:brightness(0.7) saturate(0.8); transition:all 0.25s cubic-bezier(.32,.72,0,1);
}
.gl-lightbox__thumb:hover { filter:brightness(0.9) saturate(0.95); }
.gl-lightbox__thumb.active {
  border-color:rgba(192,158,230,0.5);
  filter:brightness(0.85) saturate(0.95);
}
.gl-lightbox.dragging img { transition:none; }

/* ── Edit form ── */
.edit-section {
  background:rgba(12,12,16,0.4); border:1px solid var(--border-card);
  padding:1.75rem; margin-top:2rem;
}
.edit-section__title {
  font-family:var(--font-label); font-size:0.58rem;
  letter-spacing:0.18em; text-transform:uppercase;
  color:var(--text-secondary); margin-bottom:1.2rem;
}
.edit-images {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr));
  gap:0.7rem; margin-bottom:1rem;
}
.edit-img-wrap { position:relative; border:1px solid var(--border-card); }
.edit-img-wrap img { width:100%; height:100px; object-fit:cover; display:block; }
.edit-img-remove {
  position:absolute; top:4px; right:4px;
  background:rgba(200,60,60,0.85); color:#fff; border:none;
  width:22px; height:22px; font-size:0.7rem; cursor:pointer;
  line-height:22px; text-align:center;
}
.edit-img-remove:hover { background:rgba(220,40,40,0.95); }

/* ── Review queue ── */
.review-card {
  background:rgba(12,12,16,0.45); border:1px solid var(--border-card);
  padding:1.4rem; margin-bottom:1.4rem;
}
.review-card__title {
  font-family:var(--font-display); font-size:0.88rem;
  letter-spacing:0.08em; color:#dbd8d0;
}
.review-card__meta {
  font-family:var(--font-label); font-size:0.48rem;
  letter-spacing:0.12em; color:var(--text-dim); margin-top:0.25rem;
}
.review-card__shots { display:flex; gap:0.45rem; margin-top:0.7rem; overflow-x:auto; }
.review-card__shots img {
  height:95px; width:auto; max-width:155px;
  object-fit:cover; border:1px solid var(--border-card); flex-shrink:0;
}
.review-card__actions { margin-top:0.9rem; display:flex; gap:0.45rem; flex-wrap:wrap; }
.review-notes-input {
  width:100%; font-family:var(--font-body); font-size:0.88rem;
  color:var(--text-secondary); background:rgba(10,10,14,0.5);
  border:1px solid var(--border-card); padding:0.5rem 0.7rem;
  resize:vertical; margin-top:0.45rem; outline:none; transition:border-color 0.3s;
}
.review-notes-input:focus { border-color:rgba(160,160,170,0.25); }
.review-notes-label {
  font-family:var(--font-label); font-size:0.44rem;
  letter-spacing:0.12em; color:var(--text-dim);
  text-transform:uppercase; display:block;
  margin-top:0.7rem; margin-bottom:0.2rem;
}
.review-admin-note {
  background:rgba(220,170,60,0.05); border:1px solid rgba(220,170,60,0.18);
  padding:0.55rem 0.85rem; margin-top:0.45rem;
  font-family:var(--font-body); font-size:0.85rem;
  color:#c4a35a; font-style:italic;
}

/* ── Submit gate ── */
.submit-gate {
  text-align:center; padding:2.5rem;
  background:rgba(12,12,16,0.35); border:1px solid var(--border-card);
  max-width:480px; margin:2rem auto 0;
}
.submit-gate__icon { font-size:1.8rem; margin-bottom:0.65rem; }
.submit-gate__title {
  font-family:var(--font-display); font-size:0.88rem;
  letter-spacing:0.12em; color:#dbd8d0;
}
.submit-gate__text { font-family:var(--font-body); color:#9a968e; margin-top:0.45rem; font-size:0.92rem; }
.submit-gate__req { display:flex; gap:0.8rem; justify-content:center; margin-top:0.9rem; }
.submit-gate__item {
  font-family:var(--font-label); font-size:0.52rem;
  letter-spacing:0.12em; padding:0.25em 0.7em; border:1px solid;
}
.submit-gate__item--ok { color:#50c878; border-color:rgba(80,200,120,0.25); }
.submit-gate__item--missing { color:#e08080; border-color:rgba(200,80,80,0.25); }

/* ── Form helpers ── */
.submit-field-hint {
  font-family:var(--font-body); font-size:0.82rem;
  color:var(--text-dim); font-style:italic; margin-bottom:0.45rem;
}
.submit-req-note {
  font-family:var(--font-label); font-size:0.44rem;
  letter-spacing:0.1em; color:var(--text-dim);
  text-align:center; margin-top:0.9rem;
}
.field-opt {
  font-family:var(--font-body); font-size:0.78rem;
  color:var(--text-dim); font-style:italic; font-weight:normal;
  letter-spacing:0; text-transform:none; margin-left:0.35rem;
}
.screenshot-previews { display:flex; flex-wrap:wrap; gap:0.45rem; margin-top:0.55rem; }
.screenshot-previews__thumb { position:relative; width:90px; height:68px; }
.screenshot-previews__img { width:90px; height:68px; object-fit:cover; filter:brightness(.85) saturate(.9); }
.screenshot-previews__rm {
  position:absolute; top:2px; right:2px;
  background:rgba(10,10,14,.82); border:none; color:var(--text-dim);
  font-size:0.62rem; cursor:pointer; width:18px; height:18px;
  display:flex; align-items:center; justify-content:center;
  transition:color .2s; line-height:1;
}
.screenshot-previews__rm:hover { color:#e06878; }

/* ── File upload ── */
.comm-file-label {
  display:flex; align-items:center; gap:.7rem; cursor:pointer;
  border:1px solid var(--border-card); padding:.65rem .9rem;
  background:rgba(10,10,14,.45); transition:border-color .2s,background .2s;
}
.comm-file-label:hover { border-color:rgba(160,155,140,.2); background:rgba(14,14,20,.55); }
.comm-file-label input[type="file"] { display:none; }
.comm-file-icon { font-size:1.05rem; color:var(--text-dim); flex-shrink:0; }
.comm-file-text { flex:1; min-width:0; }
.comm-file-hint {
  font-family:var(--font-label); font-size:.52rem;
  letter-spacing:.15em; text-transform:uppercase;
  color:var(--text-dim); display:block;
}
.comm-file-name {
  font-family:var(--font-body); font-size:.88rem;
  color:var(--text-secondary); display:block;
  margin-top:.12rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.comm-file-btn {
  font-family:var(--font-label); font-size:.5rem;
  letter-spacing:.12em; text-transform:uppercase;
  color:var(--text-dim); border:1px solid var(--border-card);
  padding:.25em .6em; flex-shrink:0; transition:color .2s,border-color .2s;
}
.comm-file-label:hover .comm-file-btn { color:var(--text-secondary); border-color:rgba(160,155,140,.25); }
.comm-file-label.has-files .comm-file-icon { color:#a0c890; }
.comm-file-label.has-files .comm-file-btn { color:#a0c890; border-color:rgba(160,200,144,.25); }
.comm-file-count {
  font-family:var(--font-label); font-size:.5rem;
  letter-spacing:.1em; text-transform:uppercase;
  color:var(--text-dim); margin-top:.35rem;
}

/* ── Responsive ── */
@media(max-width:900px) {
  .community-grid { grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); }
  .author-stats { grid-template-columns:repeat(3,1fr); }
}
@media(max-width:720px) {
  .community-grid { grid-template-columns:1fr; }
  .detail-gallery { grid-template-columns:1fr; }
  .similar-builds__grid { grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); }
  .author-stats { grid-template-columns:repeat(2,1fr); }
  .share-group { margin-left:0; width:100%; justify-content:flex-start; margin-top:0.5rem; }
  .gl-lightbox__nav { display:none; }
  .gl-lightbox__thumbs { gap:0.3rem; padding:0.5rem 0.6rem; }
  .gl-lightbox__thumb { width:40px; height:30px; }
  .gallery-filter-bar .gfb-row { gap:0.3rem; }
  .gallery-pagination { gap:0.2rem; }
  .gallery-pagination__btn { font-size:0.45rem; padding:0.35em 0.65em; }
}
@media(max-width:480px) {
  .community-card__img { aspect-ratio:16/10; }
  .detail-gallery-main { max-height:300px; }
}
@media (min-width: 1024px) {
  .community-grid { padding-left: 2rem; padding-right: 2rem; }
}

/* ══════════════════════════════════════════════════════════════
   COMMUNITY HUB — Landing Page
   ══════════════════════════════════════════════════════════════ */

/* ── Hub Layout ── */
/* Body-level overlay when hub is active (covers full page including footer) */
body.community-hub-page::after {
  content: '';
  position: fixed;
  inset: 0;
  background: linear-gradient(180deg,
    rgba(6,6,8,0.6) 0%,
    rgba(6,6,8,0.45) 30%,
    rgba(6,6,8,0.7) 60%,
    rgba(6,6,8,0.88) 100%);
  pointer-events: none;
  z-index: 0;
}
/* Ensure all page content sits above the overlay */
body.community-hub-page > *:not(script) {
  position: relative;
  z-index: 1;
}

.community-hub {
  position: relative;
  width: 100%;
}

/* ── Hero Section ── */
.community-hub__hero {
  position: relative;
  min-height: 220px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.community-hub__hero-overlay {
  display: none;
}
.community-hub__hero-content {
  position: relative;
  z-index: 1;
  text-align: center;
  padding: 2rem 1.5rem;
}
.community-hub__title {
  font-family: var(--font-display);
  font-size: clamp(1.3rem, 3.5vw, 2rem);
  letter-spacing: 0.18em;
  color: var(--text-primary);
  text-transform: uppercase;
  margin: 0.5rem 0;
  text-shadow: 0 2px 24px rgba(0,0,0,0.5), 0 0 60px rgba(6,6,8,0.4);
  background: linear-gradient(135deg, var(--text-primary) 40%, #c0a87a 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.community-hub__subtitle {
  font-family: var(--font-body);
  font-style: italic;
  color: #c8c4bc;
  font-size: clamp(0.95rem, 2vw, 1.15rem);
  margin-top: 0.5rem;
  text-shadow: 0 1px 12px rgba(0,0,0,0.4);
}
.community-hub__vision {
  font-family: var(--font-body);
  color: #b8b4ac;
  font-size: clamp(0.82rem, 1.6vw, 0.95rem);
  line-height: 1.7;
  max-width: 600px;
  margin: 0.75rem auto 0;
}

/* ── Hub Gold Dividers ── */
.community-hub .divider span {
  color: rgba(192,168,122,0.5);
}
.community-hub .divider::before,
.community-hub .divider::after {
  background: linear-gradient(90deg, transparent, rgba(192,168,122,0.25), transparent);
}

/* ── Hub Carousel Section Title ── */
.community-hub__carousel-section::before {
  content: '◈';
  display: block;
  text-align: center;
  font-size: 0.7rem;
  color: rgba(192,168,122,0.3);
  margin-bottom: 0.75rem;
  text-shadow: 0 0 12px rgba(192,168,122,0.15);
}

/* ── 3D Carousel ── */
.community-hub__carousel-section {
  position: relative;
  padding: 2rem 0 1rem;
  max-width: var(--community-max-width);
  margin: 0 auto;
}
.carousel-3d {
  perspective: 1200px;
  position: relative;
  height: 420px;
  overflow: visible;
  user-select: none;
}
.carousel-3d__track {
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
}
.carousel-3d__slide {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 480px;
  max-width: 85vw;
  transform: translate(-50%, -50%) translateZ(-400px);
  opacity: 0;
  pointer-events: none;
  transition: all 0.7s cubic-bezier(.32,.72,0,1);
  backface-visibility: hidden;
}
.carousel-3d__slide--active {
  transform: translate(-50%, -50%) translateZ(0) rotateY(0deg);
  opacity: 1;
  z-index: 3;
  pointer-events: auto;
}
.carousel-3d__slide--prev {
  transform: translate(-110%, -50%) translateZ(-200px) rotateY(35deg);
  opacity: 0.5;
  z-index: 1;
  cursor: pointer;
}
.carousel-3d__slide--next {
  transform: translate(10%, -50%) translateZ(-200px) rotateY(-35deg);
  opacity: 0.5;
  z-index: 1;
  cursor: pointer;
}
.carousel-3d__slide--hidden {
  transform: translate(-50%, -50%) translateZ(-400px);
  opacity: 0;
  pointer-events: none;
}

/* ── Carousel Card ── */
.carousel-3d__card {
  position: relative;
  border-radius: 6px;
  overflow: hidden;
  border: 1px solid rgba(160,160,170,0.08);
  background: rgba(18,16,20,0.9);
  box-shadow: 0 8px 32px rgba(0,0,0,0.4);
  transition: box-shadow 0.7s cubic-bezier(.32,.72,0,1), border-color 0.7s cubic-bezier(.32,.72,0,1);
}
.carousel-3d__slide--active .carousel-3d__card {
  box-shadow: 0 20px 60px rgba(0,0,0,0.6), 0 0 0 1px rgba(160,160,170,0.06);
}
.carousel-3d__img {
  width: 100%;
  aspect-ratio: 16/10;
  object-fit: cover;
  display: block;
}
.carousel-3d__gradient {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 65%;
  background: linear-gradient(0deg, rgba(6,6,8,0.95) 0%, rgba(6,6,8,0.7) 40%, rgba(6,6,8,0.2) 70%, transparent 100%);
  pointer-events: none;
}
.carousel-3d__featured {
  position: absolute;
  top: 12px;
  right: 12px;
  font-family: var(--font-label);
  font-size: 0.5rem;
  letter-spacing: 0.14em;
  color: var(--gold-accent);
  background: linear-gradient(135deg, rgba(6,6,8,0.88), rgba(30,20,8,0.85));
  border: 1px solid rgba(212,176,96,0.35);
  padding: 0.25em 0.65em;
  border-radius: 6px;
  text-transform: uppercase;
  box-shadow: 0 2px 12px rgba(212,176,96,0.15), 0 0 20px rgba(212,176,96,0.06);
  text-shadow: 0 1px 3px rgba(0,0,0,0.8);
  animation: featuredBadgePulse 2.5s ease-in-out infinite;
}
@keyframes featuredBadgePulse {
  0%, 100% { box-shadow: 0 2px 12px rgba(212,176,96,0.15), 0 0 20px rgba(212,176,96,0.06); }
  50%      { box-shadow: 0 2px 16px rgba(212,176,96,0.3), 0 0 30px rgba(212,176,96,0.1); }
}
.carousel-3d__info {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1rem 1.25rem;
  z-index: 2;
}
.carousel-3d__name {
  font-family: var(--font-display);
  font-size: 1rem;
  letter-spacing: 0.08em;
  color: var(--text-primary);
  margin-bottom: 0.35rem;
  text-shadow: 0 1px 3px rgba(0,0,0,0.9), 0 2px 12px rgba(0,0,0,0.7), 0 4px 24px rgba(0,0,0,0.5);
}
.carousel-3d__meta {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--font-body);
  font-size: 0.85rem;
  color: var(--text-secondary);
  text-shadow: 0 1px 4px rgba(0,0,0,0.8), 0 2px 12px rgba(0,0,0,0.5);
}
.carousel-3d__author {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.25rem;
}
.carousel-3d__avatar {
  font-size: 0.75rem;
  opacity: 0.7;
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(18,16,20,0.6);
  border: 1px solid rgba(160,160,170,0.12);
  border-radius: 50%;
}
.carousel-3d__avatar--img {
  padding: 0;
  overflow: hidden;
}
.carousel-3d__avatar--img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
  display: block;
}
.carousel-3d__author-info {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  flex: 1;
  min-width: 0;
}
.carousel-3d__author-name {
  font-family: var(--font-body);
  font-size: 0.85rem;
  color: var(--text-primary);
  text-shadow: 0 1px 4px rgba(0,0,0,0.8);
}
.carousel-3d__author-bio {
  font-family: var(--font-body);
  font-size: 0.7rem;
  color: var(--text-dim);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-shadow: 0 1px 4px rgba(0,0,0,0.8);
}
.carousel-3d__server {
  font-family: var(--font-label);
  font-size: 0.5rem;
  letter-spacing: 0.1em;
  color: var(--text-dim);
  text-shadow: 0 1px 4px rgba(0,0,0,0.8);
  border: 1px solid rgba(160,160,170,0.12);
  padding: 0.15em 0.4em;
  border-radius: 6px;
  text-transform: uppercase;
}
.carousel-3d__link {
  display: inline-block;
  margin-top: 0.5rem;
  font-family: var(--font-label);
  font-size: 0.55rem;
  letter-spacing: 0.14em;
  color: var(--crimson);
  text-decoration: none;
  text-transform: uppercase;
  transition: color 0.2s;
  text-shadow: 0 1px 4px rgba(0,0,0,0.7);
}
.carousel-3d__link:hover {
  color: var(--crimson-light, #e8758a);
}

/* ── Style Tag on Carousel Card ── */
.carousel-3d__style-tag {
  position: absolute;
  top: 12px;
  left: 12px;
  font-family: var(--font-label);
  font-size: 0.42rem;
  letter-spacing: 0.1em;
  padding: 0.25em 0.6em;
  border-radius: 6px;
  text-transform: uppercase;
  border: 1px solid rgba(160,160,170,0.15);
  background: rgba(6,6,8,0.85);
  color: var(--text-dim);
  text-shadow: 0 1px 3px rgba(0,0,0,0.9);
}
.carousel-3d__style-tag--daedric  { color: #e06060; border-color: rgba(224,96,96,0.3); }
.carousel-3d__style-tag--ayleid   { color: #60c8b0; border-color: rgba(96,200,176,0.3); }
.carousel-3d__style-tag--dwemer   { color: #c8a860; border-color: rgba(200,168,96,0.3); }
.carousel-3d__style-tag--nature   { color: #80c060; border-color: rgba(128,192,96,0.3); }
.carousel-3d__style-tag--nord     { color: #90b8d0; border-color: rgba(144,184,208,0.3); }
.carousel-3d__style-tag--redguard { color: #d0a060; border-color: rgba(208,160,96,0.3); }

/* ── Thematic Glow on Active Slide ── */

/* Daedric — deep crimson/blood red */
.carousel-3d__slide--active[data-theme="daedric"] .carousel-3d__card {
  box-shadow:
    0 20px 60px rgba(0,0,0,0.5),
    0 0 40px rgba(180,50,50,0.2),
    0 0 80px rgba(180,50,50,0.1),
    0 0 120px rgba(140,30,30,0.05),
    inset 0 0 30px rgba(180,50,50,0.03);
  border-color: rgba(180,50,50,0.2);
  animation: glowDaedric 3s ease-in-out infinite;
}
@keyframes glowDaedric {
  0%, 100% { box-shadow: 0 20px 60px rgba(0,0,0,0.5), 0 0 40px rgba(180,50,50,0.2), 0 0 80px rgba(180,50,50,0.1), inset 0 0 30px rgba(180,50,50,0.03); }
  50%      { box-shadow: 0 20px 60px rgba(0,0,0,0.5), 0 0 50px rgba(180,50,50,0.28), 0 0 100px rgba(180,50,50,0.14), inset 0 0 40px rgba(180,50,50,0.05); }
}

/* Ayleid — ethereal cyan/teal */
.carousel-3d__slide--active[data-theme="ayleid"] .carousel-3d__card {
  box-shadow:
    0 20px 60px rgba(0,0,0,0.5),
    0 0 40px rgba(80,200,170,0.18),
    0 0 80px rgba(80,200,170,0.1),
    0 0 120px rgba(60,180,160,0.05),
    inset 0 0 30px rgba(80,200,170,0.03);
  border-color: rgba(80,200,170,0.2);
  animation: glowAyleid 4s ease-in-out infinite;
}
@keyframes glowAyleid {
  0%, 100% { box-shadow: 0 20px 60px rgba(0,0,0,0.5), 0 0 40px rgba(80,200,170,0.18), 0 0 80px rgba(80,200,170,0.1), inset 0 0 30px rgba(80,200,170,0.03); }
  50%      { box-shadow: 0 20px 60px rgba(0,0,0,0.5), 0 0 55px rgba(80,200,170,0.26), 0 0 100px rgba(80,200,170,0.14), inset 0 0 40px rgba(80,200,170,0.05); }
}

/* Dwemer — warm amber/brass */
.carousel-3d__slide--active[data-theme="dwemer"] .carousel-3d__card {
  box-shadow:
    0 20px 60px rgba(0,0,0,0.5),
    0 0 40px rgba(200,168,80,0.2),
    0 0 80px rgba(200,168,80,0.1),
    0 0 120px rgba(180,140,50,0.05),
    inset 0 0 30px rgba(200,168,80,0.03);
  border-color: rgba(200,168,80,0.2);
  animation: glowDwemer 3.5s ease-in-out infinite;
}
@keyframes glowDwemer {
  0%, 100% { box-shadow: 0 20px 60px rgba(0,0,0,0.5), 0 0 40px rgba(200,168,80,0.2), 0 0 80px rgba(200,168,80,0.1), inset 0 0 30px rgba(200,168,80,0.03); }
  50%      { box-shadow: 0 20px 60px rgba(0,0,0,0.5), 0 0 50px rgba(200,168,80,0.28), 0 0 100px rgba(200,168,80,0.14), inset 0 0 40px rgba(200,168,80,0.05); }
}

/* Nature — living green */
.carousel-3d__slide--active[data-theme="nature"] .carousel-3d__card {
  box-shadow:
    0 20px 60px rgba(0,0,0,0.5),
    0 0 40px rgba(100,180,80,0.18),
    0 0 80px rgba(100,180,80,0.1),
    0 0 120px rgba(80,160,60,0.05),
    inset 0 0 30px rgba(100,180,80,0.03);
  border-color: rgba(100,180,80,0.2);
  animation: glowNature 4.5s ease-in-out infinite;
}
@keyframes glowNature {
  0%, 100% { box-shadow: 0 20px 60px rgba(0,0,0,0.5), 0 0 40px rgba(100,180,80,0.18), 0 0 80px rgba(100,180,80,0.1), inset 0 0 30px rgba(100,180,80,0.03); }
  50%      { box-shadow: 0 20px 60px rgba(0,0,0,0.5), 0 0 50px rgba(100,180,80,0.25), 0 0 100px rgba(100,180,80,0.13), inset 0 0 40px rgba(100,180,80,0.05); }
}

/* Nord — icy steel blue */
.carousel-3d__slide--active[data-theme="nord"] .carousel-3d__card {
  box-shadow:
    0 20px 60px rgba(0,0,0,0.5),
    0 0 40px rgba(120,160,200,0.18),
    0 0 80px rgba(120,160,200,0.1),
    0 0 120px rgba(100,140,190,0.05),
    inset 0 0 30px rgba(120,160,200,0.03);
  border-color: rgba(120,160,200,0.2);
  animation: glowNord 4s ease-in-out infinite;
}
@keyframes glowNord {
  0%, 100% { box-shadow: 0 20px 60px rgba(0,0,0,0.5), 0 0 40px rgba(120,160,200,0.18), 0 0 80px rgba(120,160,200,0.1), inset 0 0 30px rgba(120,160,200,0.03); }
  50%      { box-shadow: 0 20px 60px rgba(0,0,0,0.5), 0 0 55px rgba(120,160,200,0.25), 0 0 100px rgba(120,160,200,0.14), inset 0 0 40px rgba(120,160,200,0.05); }
}

/* Redguard — desert gold/sand */
.carousel-3d__slide--active[data-theme="redguard"] .carousel-3d__card {
  box-shadow:
    0 20px 60px rgba(0,0,0,0.5),
    0 0 40px rgba(208,160,80,0.2),
    0 0 80px rgba(208,160,80,0.1),
    0 0 120px rgba(190,140,60,0.05),
    inset 0 0 30px rgba(208,160,80,0.03);
  border-color: rgba(208,160,80,0.2);
  animation: glowRedguard 3.5s ease-in-out infinite;
}
@keyframes glowRedguard {
  0%, 100% { box-shadow: 0 20px 60px rgba(0,0,0,0.5), 0 0 40px rgba(208,160,80,0.2), 0 0 80px rgba(208,160,80,0.1), inset 0 0 30px rgba(208,160,80,0.03); }
  50%      { box-shadow: 0 20px 60px rgba(0,0,0,0.5), 0 0 50px rgba(208,160,80,0.28), 0 0 100px rgba(208,160,80,0.14), inset 0 0 40px rgba(208,160,80,0.05); }
}

/* Default — subtle crimson */
.carousel-3d__slide--active[data-theme="default"] .carousel-3d__card {
  box-shadow:
    0 20px 60px rgba(0,0,0,0.5),
    0 0 35px rgba(184,68,90,0.12),
    0 0 70px rgba(184,68,90,0.06);
}

/* ── Carousel Navigation ── */
.carousel-3d__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: rgba(18,16,20,0.75);
  border: 1px solid rgba(160,160,170,0.12);
  color: var(--text-primary);
  font-size: 1.4rem;
  cursor: pointer;
  transition: all 0.25s cubic-bezier(.32,.72,0,1);
  display: flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(8px);
}
.carousel-3d__nav:hover {
  background: rgba(184,68,90,0.15);
  border-color: rgba(184,68,90,0.3);
}
.carousel-3d__nav--prev { left: 12px; }
.carousel-3d__nav--next { right: 12px; }

/* ── Carousel Dots ── */
.carousel-3d__dots {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 1rem;
}
.carousel-3d__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(160,160,170,0.2);
  border: none;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(.32,.72,0,1);
  padding: 0;
}
.carousel-3d__dot.active {
  background: var(--crimson);
  box-shadow: 0 0 8px rgba(184,68,90,0.4);
}
.carousel-3d__dot:hover:not(.active) {
  background: rgba(160,160,170,0.4);
}

/* ── Quick Actions ── */
.community-hub__actions {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  padding: 1.5rem 1rem;
  max-width: var(--community-max-width);
  margin: 0 auto;
}
.hub-action-btn {
  font-family: var(--font-label);
  font-size: 0.55rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-secondary);
  text-decoration: none;
  padding: 0.55em 1.2em;
  border: 1px solid rgba(160,160,170,0.12);
  border-radius: 6px;
  transition: all 0.25s cubic-bezier(.32,.72,0,1);
  background: rgba(18,16,20,0.5);
}
.hub-action-btn:hover {
  border-color: var(--crimson);
  color: var(--text-primary);
  background: rgba(184,68,90,0.08);
}
.hub-action-btn--primary {
  border-color: rgba(184,68,90,0.3);
  color: var(--crimson);
}
.hub-action-badge {
  display: inline-block;
  background: rgba(184,68,90,0.15);
  color: var(--crimson);
  border-radius: 10px;
  padding: 0.1em 0.5em;
  font-size: 0.9em;
  margin-left: 0.3em;
}

/* ── Stats Section ── */
.community-hub__stats {
  max-width: var(--community-max-width);
  margin: 0 auto;
  padding: 1.5rem 1.5rem 3rem;
  text-align: center;
}
.community-hub__stats-title {
  font-family: var(--font-display);
  font-size: clamp(0.85rem, 2vw, 1.1rem);
  letter-spacing: 0.16em;
  color: var(--text-primary);
  text-transform: uppercase;
  margin: 0.5rem 0 2rem;
}

/* ── Stats Counters ── */
.community-stats__counters {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  margin-bottom: 2.5rem;
}
.community-stats__counter {
  background: rgba(18,16,20,0.6);
  border: 1px solid rgba(160,160,170,0.06);
  border-radius: 6px;
  padding: 1.5rem 1rem;
  backdrop-filter: blur(6px);
  transition: border-color 0.2s;
}
.community-stats__counter:hover {
  border-color: rgba(160,160,170,0.12);
}
.community-stats__number {
  display: block;
  font-family: var(--font-display);
  font-size: clamp(1.4rem, 3vw, 2rem);
  letter-spacing: 0.06em;
  color: var(--text-primary);
  margin-bottom: 0.25rem;
}
.community-stats__label {
  font-family: var(--font-label);
  font-size: 0.5rem;
  letter-spacing: 0.16em;
  color: var(--text-dim);
  text-transform: uppercase;
}

/* ── Top Creators ── */
.community-stats__creators,
.community-stats__themes {
  max-width: 560px;
  margin: 0 auto 2rem;
  text-align: left;
}
.community-stats__section-title {
  font-family: var(--font-label);
  font-size: 0.55rem;
  letter-spacing: 0.18em;
  color: #c0a87a;
  text-transform: uppercase;
  text-align: center;
  margin-bottom: 1rem;
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  justify-content: center;
}
.community-stats__section-title::before,
.community-stats__section-title::after {
  content: '';
  flex: 1;
  max-width: 60px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(192,168,122,0.25), transparent);
}
.community-stats__creator-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.community-stats__creator-row {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.6rem 0.85rem;
  background: rgba(18,16,20,0.4);
  border: 1px solid rgba(160,160,170,0.05);
  border-radius: 4px;
  font-family: var(--font-body);
  font-size: 0.9rem;
  transition: border-color 0.2s;
}
.community-stats__creator-row:hover {
  border-color: rgba(192,168,122,0.15);
  background: rgba(192,168,122,0.03);
}
.community-stats__rank {
  font-family: var(--font-display);
  font-size: 0.8rem;
  color: var(--gold-accent);
  min-width: 1.5em;
}
.community-stats__creator-avatar {
  font-size: 0.75rem;
  opacity: 0.6;
  display: inline-flex;
  align-items: center;
}
.community-stats__creator-avatar--img {
  padding: 0 !important;
  overflow: hidden;
  border-radius: 50%;
  opacity: 1;
}
.community-stats__creator-avatar--img img {
  border-radius: 50%;
  object-fit: cover;
  display: block;
}
.community-stats__creator-name {
  color: var(--text-primary);
  flex: 1;
}
.community-stats__creator-builds {
  font-family: var(--font-label);
  font-size: 0.5rem;
  letter-spacing: 0.1em;
  color: var(--text-dim);
  text-transform: uppercase;
}
.community-stats__creator-likes {
  font-family: var(--font-body);
  font-size: 0.85rem;
  color: var(--crimson);
}

/* ── Popular Themes ── */
.community-stats__theme-chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem;
}
.community-stats__chip {
  font-family: var(--font-label);
  font-size: 0.5rem;
  letter-spacing: 0.1em;
  color: var(--text-secondary);
  text-decoration: none;
  padding: 0.4em 0.8em;
  border: 1px solid rgba(160,160,170,0.1);
  border-radius: 6px;
  background: rgba(18,16,20,0.4);
  transition: all 0.25s cubic-bezier(.32,.72,0,1);
  text-transform: uppercase;
}
.community-stats__chip:hover {
  border-color: rgba(192,168,122,0.35);
  color: #c0a87a;
  background: rgba(192,168,122,0.06);
  box-shadow: 0 0 8px rgba(192,168,122,0.08);
}

/* ── Placeholder Carousel ── */
.carousel-placeholder-hint {
  text-align: center;
  font-family: var(--font-body);
  font-style: italic;
  font-size: 0.9rem;
  color: #a8a49c;
  margin: 0 0 0.75rem;
}
.carousel-3d__slide--placeholder .carousel-3d__img {
  filter: brightness(0.65) saturate(0.75);
}
.carousel-3d__slide--placeholder .carousel-3d__card {
  border-color: rgba(160,160,170,0.04);
}
.carousel-3d__badge-placeholder {
  position: absolute;
  top: 12px;
  right: 12px;
  font-family: var(--font-label);
  font-size: 0.45rem;
  letter-spacing: 0.12em;
  color: var(--text-dim);
  background: rgba(6,6,8,0.75);
  border: 1px solid rgba(160,160,170,0.15);
  padding: 0.25em 0.65em;
  border-radius: 6px;
  text-transform: uppercase;
}
.carousel-3d__link--muted {
  color: var(--text-dim) !important;
  font-style: italic;
  pointer-events: none;
}

/* ── Recently Added ── */
.community-hub__recent {
  max-width: var(--community-max-width);
  margin: 0 auto 2rem;
  padding: 0 1.5rem;
}
.recent-builds-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 0.85rem;
  margin-top: 0.75rem;
}
.recent-build-card {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.65rem;
  background: rgba(18,16,20,0.4);
  border: 1px solid rgba(160,160,170,0.06);
  border-radius: 5px;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.2s, transform 0.2s;
}
.recent-build-card:hover {
  border-color: rgba(160,160,170,0.14);
  transform: translateY(-2px);
}
.recent-build-card__img {
  width: 72px;
  height: 48px;
  object-fit: cover;
  border-radius: 6px;
  flex-shrink: 0;
  image-rendering:auto; -webkit-backface-visibility:hidden; backface-visibility:hidden;
  transform:translateZ(0); will-change:transform;
  filter: brightness(0.8) saturate(0.9);
  transition: filter 0.3s;
}
.recent-build-card:hover .recent-build-card__img {
  filter: brightness(0.92) saturate(1);
}
.recent-build-card__info {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}
.recent-build-card__name {
  font-family: var(--font-display);
  font-size: 0.72rem;
  letter-spacing: 0.05em;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.recent-build-card__author {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  font-family: var(--font-body);
  font-size: 0.78rem;
  color: var(--text-secondary);
}
.recent-build__avatar {
  width: 18px; height: 18px;
  font-size: 0.55rem;
  display: flex; align-items: center; justify-content: center;
  background: rgba(18,16,20,0.6);
  border: 1px solid rgba(160,160,170,0.12);
  border-radius: 50%;
  flex-shrink: 0;
}
.recent-build__avatar--img {
  padding: 0; overflow: hidden;
}
.recent-build__avatar--img img {
  width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block;
}
.recent-build-card__time {
  font-family: var(--font-label);
  font-size: 0.4rem;
  letter-spacing: 0.1em;
  color: var(--text-dim);
  text-transform: uppercase;
}

/* ── Empty State CTA ── */
.community-hub__empty-cta {
  margin-top: 2rem;
  padding: 2.5rem 1.5rem;
  text-align: center;
  background: rgba(18,16,20,0.4);
  border: 1px dashed rgba(160,160,170,0.12);
  border-radius: 8px;
  max-width: 480px;
  margin-left: auto;
  margin-right: auto;
}
.community-hub__empty-icon {
  font-size: 2rem;
  margin-bottom: 0.75rem;
  opacity: 0.6;
}
.community-hub__empty-text {
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: var(--text-secondary);
  margin-bottom: 1.25rem;
  line-height: 1.6;
}
.hub-action-btn--large {
  padding: 0.7em 1.6em;
  font-size: 0.6rem;
}

/* ── Hub Responsive ── */
@media (max-width: 900px) {
  .carousel-3d { height: 360px; }
  .carousel-3d__slide { width: 420px; }
  .community-stats__counters { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  body.community-hub-page { background-attachment: scroll !important; }
  body.community-hub-page::after { position: absolute; }
  .community-hub__hero { min-height: 260px; }
  .carousel-3d { height: 300px; }
  .carousel-3d__slide { width: 320px; }
  .carousel-3d__slide--prev { transform: translate(-85%, -50%) translateZ(-150px) rotateY(25deg); }
  .carousel-3d__slide--next { transform: translate(0%, -50%) translateZ(-150px) rotateY(-25deg); }
  .carousel-3d__nav { width: 36px; height: 36px; font-size: 1.1rem; }
  .carousel-3d__nav--prev { left: 4px; }
  .carousel-3d__nav--next { right: 4px; }
  .community-hub__actions { flex-direction: column; gap: 0.65rem; }
  .hub-action-btn { width: 100%; max-width: 280px; text-align: center; }
  .community-stats__counters { gap: 0.75rem; }
}
@media (max-width: 480px) {
  .carousel-3d { height: 260px; }
  .carousel-3d__slide { width: 280px; }
  .carousel-3d__name { font-size: 0.85rem; }
  .carousel-3d__meta { font-size: 0.75rem; }
  .community-stats__counters { grid-template-columns: 1fr 1fr; }
}

/* ── Scroll Reveal Animations ── */
.reveal-on-scroll {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s cubic-bezier(.32,.72,0,1), transform 0.6s cubic-bezier(.32,.72,0,1);
}
.reveal-on-scroll.visible {
  opacity: 1;
  transform: none;
}

/* ── Carousel Fade-In on Load ── */
.carousel-3d {
  animation: carouselFadeIn 0.8s ease-out both;
}
@keyframes carouselFadeIn {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: none; }
}

/* ── Button Micro-interactions ── */
.hub-action-btn:active,
.filter-btn:active,
.btn:active,
.gallery-pagination__btn:active,
.carousel-3d__nav:active {
  transform: scale(0.97);
}

/* ── Heart Pulse on Like ── */
@keyframes heartPulse {
  0%   { transform: scale(1); }
  30%  { transform: scale(1.35); }
  60%  { transform: scale(0.95); }
  100% { transform: scale(1); }
}
.like-btn.pulse .like-btn__icon,
.card-like-btn.pulse .card-like-icon {
  animation: heartPulse 0.4s cubic-bezier(.32,.72,0,1)-out;
}

/* ── Carousel Dot Bounce ── */
.carousel-3d__dot.active {
  animation: dotBounce 0.35s ease-out;
}
@keyframes dotBounce {
  0%   { transform: scale(1); }
  50%  { transform: scale(1.4); }
  100% { transform: scale(1); }
}

/* ── Featured Stat Gold Accent ── */
.community-stats__counter--featured .community-stats__number {
  color: var(--gold-accent);
}
.community-stats__counter--featured {
  border-color: rgba(212,176,96,0.12);
}

/* ── Focus Visible ── */
.btn:focus-visible,
.filter-btn:focus-visible,
.hub-action-btn:focus-visible,
.gallery-pagination__btn:focus-visible,
.carousel-3d__nav:focus-visible,
.carousel-3d__dot:focus-visible,
.gallery-view-btn:focus-visible,
.filter-select:focus-visible,
.like-btn:focus-visible,
.fav-btn:focus-visible,
.card-like-btn:focus-visible,
.card-fav-btn:focus-visible,
.community-card:focus-visible {
  outline: 2px solid rgba(192,158,230,0.6);
  outline-offset: 2px;
}

/* ── Prefers Reduced Motion ── */
@media (prefers-reduced-motion: reduce) {
  .reveal-on-scroll { transition: none; opacity: 1; transform: none; }
  .carousel-3d { animation: none; }
  .carousel-3d__slide { transition: opacity 0.3s cubic-bezier(.32,.72,0,1) !important; }
  .carousel-3d__dot.active { animation: none; }
  .community-card { transition: none; }
  .community-card.card-animate { opacity: 1; transform: none; transition: none; }
  .similar-card__img { transition: none; }
  .community-card--featured .featured-corner { animation: none; }
  .carousel-3d__featured { animation: none; }
  .carousel-3d__slide--active[data-theme="daedric"] .carousel-3d__card,
  .carousel-3d__slide--active[data-theme="ayleid"] .carousel-3d__card,
  .carousel-3d__slide--active[data-theme="dwemer"] .carousel-3d__card,
  .carousel-3d__slide--active[data-theme="nature"] .carousel-3d__card,
  .carousel-3d__slide--active[data-theme="nord"] .carousel-3d__card,
  .carousel-3d__slide--active[data-theme="redguard"] .carousel-3d__card { animation: none; }
  .detail-featured-badge__stars { animation: none; opacity: 0.6; }
  @keyframes featuredShimmer { 0%, 100% { background-position: 0 0; } }
}

/* ══════════════════════════════════════════════════════════════
   MY SUBMISSIONS
   ══════════════════════════════════════════════════════════════ */

/* ── Stats Row ── */
.my-subs-stats {
  display: flex;
  justify-content: center;
  gap: 0.75rem;
  margin: 1.5rem 0;
  flex-wrap: wrap;
}
.my-subs-stat {
  font-family: var(--font-display);
  font-size: 1.3rem;
  color: var(--text-primary);
  text-align: center;
  padding: 0.75rem 1.25rem;
  background: rgba(12,12,16,0.35);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(192,168,122,0.08);
  border-radius: 10px;
  min-width: 90px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.2), inset 0 1px 0 rgba(255,255,255,0.03);
  transition: border-color 0.3s, box-shadow 0.3s, transform 0.3s;
}
.my-subs-stat:hover {
  border-color: rgba(192,168,122,0.18);
  box-shadow: 0 4px 20px rgba(0,0,0,0.3), 0 0 0 1px rgba(192,168,122,0.06);
  transform: translateY(-2px);
}
.my-subs-stat:active { transform: scale(0.97); }
.my-subs-stat span {
  display: block;
  font-family: var(--font-label);
  font-size: 0.65rem;
  letter-spacing: 0.1em;
  color: var(--text-secondary);
  text-transform: uppercase;
  margin-top: 0.25rem;
}
.my-subs-stat--gold { color: #c0a87a; }
.my-subs-stat--gold span { color: rgba(192,168,122,0.6); }
.my-subs-stat--amber { color: #c89040; }
.my-subs-stat--amber span { color: rgba(200,144,64,0.6); }

/* ── Empty State ── */
.my-subs-empty {
  text-align: center;
  padding: 4rem 1.5rem;
  color: var(--text-secondary);
  font-size: 1rem;
  background: rgba(12,12,16,0.25);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(192,168,122,0.06);
  border-radius: 12px;
  margin-top: 1rem;
}
.my-subs-empty__actions {
  display: flex;
  justify-content: center;
  gap: 0.75rem;
  margin-top: 1.25rem;
}

/* ── Submissions List ── */
.my-subs-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-top: 1rem;
}
.my-subs-row {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem;
  background: rgba(12,12,16,0.3);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(192,168,122,0.06);
  border-radius: 10px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.18), inset 0 1px 0 rgba(255,255,255,0.03);
  transition: border-color 0.3s, box-shadow 0.3s, transform 0.3s;
  position: relative;
  overflow: hidden;
}
.my-subs-row::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 3px;
  height: 100%;
  border-radius: 6px 0 0 6px;
  transition: box-shadow 0.3s;
}
.my-subs-row:hover {
  border-color: rgba(192,168,122,0.15);
  box-shadow: 0 8px 32px rgba(0,0,0,0.3), 0 0 0 1px rgba(192,168,122,0.05);
  transform: translateY(-2px);
}
.my-subs-row:active { transform: scale(0.99); }
.my-subs-row--featured::before {
  background: linear-gradient(180deg, #c0a87a, #d4af50);
  box-shadow: 0 0 8px rgba(192,168,122,0.3);
}
.my-subs-row--featured {
  background: linear-gradient(135deg, rgba(12,12,16,0.3), rgba(192,168,122,0.03));
}
.my-subs-row--approved::before {
  background: linear-gradient(180deg, #7ab47a, #5a9a5a);
  box-shadow: 0 0 6px rgba(122,180,122,0.2);
}
.my-subs-row--pending::before {
  background: linear-gradient(180deg, #c89040, #b07830);
  box-shadow: 0 0 6px rgba(200,144,64,0.2);
}
.my-subs-row--rejected::before {
  background: linear-gradient(180deg, #c84040, #a03030);
  box-shadow: 0 0 6px rgba(200,64,64,0.2);
}
.my-subs-row--draft::before {
  background: rgba(160,160,170,0.2);
}

/* ── Row Thumbnail ── */
.my-subs-row__thumb-link {
  flex-shrink: 0;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.my-subs-row__thumb {
  width: 90px;
  height: 60px;
  object-fit: cover;
  display: block;
  transition: transform 0.4s cubic-bezier(.32,.72,0,1), filter 0.3s;
}
.my-subs-row:hover .my-subs-row__thumb {
  transform: scale(1.06);
  filter: brightness(1.1);
}

/* ── Row Info ── */
.my-subs-row__info {
  flex: 1;
  min-width: 0;
}
.my-subs-row__title {
  font-family: var(--font-display);
  font-size: 0.9rem;
  letter-spacing: 0.06em;
  color: var(--text-primary);
  text-decoration: none;
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-shadow: 0 1px 3px rgba(0,0,0,0.3);
  transition: color 0.3s;
}
.my-subs-row__title:hover {
  color: #c0a87a;
}
.my-subs-row__meta {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  font-family: var(--font-body);
  font-size: 0.8rem;
  color: var(--text-dim);
  margin-top: 0.2rem;
}
.my-subs-row__badge {
  font-family: var(--font-label);
  font-size: 0.55rem;
  letter-spacing: 0.1em;
  color: rgba(192,168,122,0.7);
  border: 1px solid rgba(192,168,122,0.15);
  padding: 0.2em 0.6em;
  border-radius: 4px;
  text-transform: uppercase;
  background: rgba(192,168,122,0.04);
}
.my-subs-row__badge--house {
  color: rgba(158,126,192,0.8);
  border-color: rgba(158,126,192,0.2);
  background: rgba(158,126,192,0.04);
}
.my-subs-row__stats {
  font-family: var(--font-body);
  font-size: 0.78rem;
  color: var(--text-secondary);
  margin-top: 0.15rem;
}
.my-subs-row__note {
  font-family: var(--font-body);
  font-size: 0.78rem;
  color: #c89040;
  margin-top: 0.3rem;
  padding: 0.5rem 0.75rem;
  background: rgba(200,144,64,0.05);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border-radius: 6px;
  border-left: 3px solid rgba(200,144,64,0.4);
  box-shadow: inset 0 1px 0 rgba(200,144,64,0.03);
}

/* ── Status Timeline ── */
.my-subs-timeline {
  display: flex;
  align-items: center;
  gap: 0;
  margin-top: 0.4rem;
}
.my-subs-timeline__step {
  display: flex;
  align-items: center;
  gap: 0;
  font-family: var(--font-label);
  font-size: 0.55rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.my-subs-timeline__dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  border: 1.5px solid rgba(160,160,170,0.15);
  background: none;
  flex-shrink: 0;
  transition: all 0.3s cubic-bezier(.32,.72,0,1);
}
.my-subs-timeline__step--done .my-subs-timeline__dot {
  background: #7ab47a;
  border-color: #7ab47a;
  box-shadow: 0 0 4px rgba(122,180,122,0.2);
}
.my-subs-timeline__step--current .my-subs-timeline__dot {
  border-color: #c0a87a;
  background: #c0a87a;
  box-shadow: 0 0 8px rgba(192,168,122,0.4);
  animation: timelinePulse 2s ease-in-out infinite;
}
@keyframes timelinePulse {
  0%, 100% { box-shadow: 0 0 6px rgba(192,168,122,0.3); }
  50% { box-shadow: 0 0 12px rgba(192,168,122,0.5); }
}
.my-subs-timeline__step--featured.my-subs-timeline__step--current .my-subs-timeline__dot {
  border-color: #d4af50;
  background: #d4af50;
  box-shadow: 0 0 10px rgba(212,175,80,0.5);
}
.my-subs-timeline__label {
  color: var(--text-secondary);
  margin-left: 0.25rem;
  white-space: nowrap;
}
.my-subs-timeline__step--current .my-subs-timeline__label {
  color: rgba(192,168,122,0.8);
}
.my-subs-timeline__line {
  width: 20px; height: 1.5px;
  background: rgba(160,160,170,0.1);
  flex-shrink: 0;
  border-radius: 1px;
}
.my-subs-timeline__step--done + .my-subs-timeline__line {
  background: linear-gradient(90deg, rgba(122,180,122,0.35), rgba(122,180,122,0.15));
}
.my-subs-row__time {
  font-family: var(--font-body);
  font-size: 0.75rem;
  color: var(--text-dim);
  margin-top: 0.15rem;
}

/* ── Row Right (Status + Actions) ── */
.my-subs-row__right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.5rem;
  flex-shrink: 0;
}
.my-subs-row__actions {
  display: flex;
  gap: 0.35rem;
}
.my-subs-row__actions .btn--small {
  border-color: rgba(192,168,122,0.15);
  transition: all 0.3s cubic-bezier(.32,.72,0,1);
}
.my-subs-row__actions .btn--small:hover {
  border-color: rgba(192,168,122,0.35);
  color: #c0a87a;
  box-shadow: 0 0 8px rgba(192,168,122,0.1);
}

/* ── Featured Row Shimmer ── */
.my-subs-row--featured::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(192,168,122,0.3) 20%,
    rgba(212,175,80,0.5) 50%, rgba(192,168,122,0.3) 80%, transparent 100%);
  background-size: 200% 100%;
  animation: mySubsShimmer 4s ease-in-out infinite;
}
@keyframes mySubsShimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* ── My Submissions Responsive ── */
@media (max-width: 640px) {
  .my-subs-row {
    flex-wrap: wrap;
  }
  .my-subs-row__thumb {
    width: 60px;
    height: 42px;
  }
  .my-subs-row__right {
    width: 100%;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    padding-top: 0.5rem;
    border-top: 1px solid rgba(160,160,170,0.04);
  }
}

/* ── Mobile tap-target fix: ensure 44px minimum for interactive elements ── */
@media (max-width: 640px) {
  .filter-chip,
  .gallery-pagination__btn,
  .gallery-filter-bar select,
  .gallery-filter-bar button,
  .detail-share-btn,
  .community-card__like-btn,
  .my-subs-row__actions a,
  .my-subs-row__actions button { min-height: 44px; min-width: 44px; display: inline-flex; align-items: center; justify-content: center; }
  .filter-chip { padding: 0.5em 0.8em; }
  .gallery-pagination__btn { padding: 0.5em 0.9em; }
}

/* ── Small mobile (phones) ──────────────────────────────────── */
@media (max-width: 480px) {
  /* Force single column */
  .community-grid { grid-template-columns: 1fr; gap: 1rem; }

  /* Card images: fill width, keep ratio */
  .community-card__img {
    width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover;
  }

  /* Gallery filter bar: wrap on small screens */
  .gallery-filter-bar {
    flex-wrap: wrap; gap: 0.5rem;
  }
  .gallery-filter-bar select,
  .gallery-filter-bar input {
    width: 100%; min-width: 0;
  }

  /* Detail view: images full width */
  .detail-gallery-main { max-height: 50vh; }
  .detail-gallery-main img { width: 100%; height: auto; object-fit: contain; }

  /* Detail info stacked */
  .detail-info-grid { grid-template-columns: 1fr; }

  /* Hub section spacing */
  .community-hub__section { padding: 2rem 1rem; }
  .hub-section__title { font-size: clamp(1rem, 5vw, 1.4rem); }
}

/* ══════════════════════════════════════════════════════════════
   PREMIUM ENHANCEMENTS v4.0
   ══════════════════════════════════════════════════════════════ */

/* ── Gallery Card: Shimmer Sweep on Hover ── */
.community-card::after {
  content:''; position:absolute; inset:0; z-index:6; pointer-events:none;
  background:linear-gradient(
    115deg,
    transparent 20%,
    rgba(255,255,255,0.03) 40%,
    rgba(255,255,255,0.06) 50%,
    rgba(255,255,255,0.03) 60%,
    transparent 80%);
  background-size:200% 100%;
  background-position:200% 0;
  transition:background-position 0.8s cubic-bezier(.32,.72,0,1);
}
.community-card:hover::after {
  background-position:-200% 0;
}
/* Featured cards already use ::after for aura — override to combine */
.community-card--featured::after {
  background:
    linear-gradient(
      115deg,
      transparent 20%,
      rgba(255,255,255,0.03) 40%,
      rgba(255,255,255,0.06) 50%,
      rgba(255,255,255,0.03) 60%,
      transparent 80%),
    linear-gradient(145deg,
      rgba(192,158,230,0.08) 0%,
      rgba(140,80,200,0.03) 40%,
      rgba(212,176,96,0.04) 70%,
      rgba(192,158,230,0.06) 100%);
  background-size:200% 100%, 100% 100%;
  background-position:200% 0, 0 0;
  opacity:1; transition:background-position 0.8s cubic-bezier(.32,.72,0,1);
}
.community-card--featured:hover::after {
  background-position:-200% 0, 0 0;
}

/* ── Gallery Card: Accent Glow Line at Top ── */
.community-card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2px; z-index:6;
  background:linear-gradient(90deg, transparent, rgba(184,68,90,0.4), rgba(192,168,122,0.25), rgba(184,68,90,0.4), transparent);
  opacity:0; transition:opacity 0.4s cubic-bezier(.32,.72,0,1);
  pointer-events:none;
}
.community-card:hover::before {
  opacity:1;
}
/* Featured cards override: use purple accent line */
.community-card--featured::before {
  background:linear-gradient(90deg,
    transparent 0%,
    rgba(212,180,255,0.4) 20%,
    rgba(255,220,150,0.7) 40%,
    rgba(212,180,255,0.8) 50%,
    rgba(255,220,150,0.7) 60%,
    rgba(212,180,255,0.4) 80%,
    transparent 100%);
  background-size:200% 100%;
  animation:featuredShimmer 3.5s ease-in-out infinite;
  opacity:1;
}

/* ── Gallery Card: Image Vignette Overlay ── */
.community-card__img-wrap::before {
  content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:radial-gradient(ellipse at center, transparent 50%, rgba(6,6,8,0.35) 100%);
  opacity:0.7; transition:opacity 0.4s;
}
.community-card:hover .community-card__img-wrap::before {
  opacity:0.4;
}

/* ── Gallery Card: House Name Accent Underline ── */
.community-card__house {
  position:relative; padding-bottom:0.3rem;
}
.community-card__house::after {
  content:''; position:absolute; bottom:0; left:0;
  width:0; height:1px;
  background:linear-gradient(90deg, rgba(192,168,122,0.5), transparent);
  transition:width 0.5s cubic-bezier(.32,.72,0,1);
}
.community-card:hover .community-card__house::after {
  width:60%;
}
.community-card--featured .community-card__house::after {
  background:linear-gradient(90deg, rgba(192,158,230,0.5), transparent);
}

/* ── Gallery Card: Elevated Hover Shadow ── */
.community-card:hover {
  box-shadow:
    0 24px 56px rgba(0,0,0,0.55),
    0 0 0 1px rgba(192,168,122,0.06),
    0 0 40px rgba(192,168,122,0.03),
    inset 0 1px 0 rgba(255,255,255,0.04);
}

/* ── Hub Hero: Animated Ornamental Sigil ── */
.community-hub__hero-content::before {
  content:'◈';
  display:block; text-align:center;
  font-size:1.2rem; color:rgba(192,168,122,0.25);
  margin-bottom:0.5rem; letter-spacing:0.5em;
  text-shadow:0 0 20px rgba(192,168,122,0.15);
  animation:hubSigilPulse 4s ease-in-out infinite;
}
@keyframes hubSigilPulse {
  0%, 100% { opacity:0.5; text-shadow:0 0 20px rgba(192,168,122,0.15); }
  50%      { opacity:0.9; text-shadow:0 0 30px rgba(192,168,122,0.3), 0 0 60px rgba(192,168,122,0.1); }
}

/* ── Hub Hero: Title Enhanced Glow ── */
.community-hub__title {
  text-shadow:0 2px 24px rgba(0,0,0,0.5), 0 0 80px rgba(192,168,122,0.08);
}

/* ── Hub Hero: Subtle Particle Drift (decorative border) ── */
.community-hub__hero::after {
  content:''; position:absolute; bottom:0; left:0; right:0; height:1px;
  background:linear-gradient(90deg,
    transparent 0%,
    rgba(192,168,122,0.2) 20%,
    rgba(192,168,122,0.4) 50%,
    rgba(192,168,122,0.2) 80%,
    transparent 100%);
  pointer-events:none;
}

/* ── Stats Counter: Accent Underline on Number ── */
.community-stats__number {
  position:relative; display:inline-block;
}
.community-stats__number::after {
  content:''; position:absolute; bottom:-4px; left:50%; transform:translateX(-50%);
  width:0; height:1px;
  background:linear-gradient(90deg, transparent, rgba(192,168,122,0.5), transparent);
  transition:width 0.5s cubic-bezier(.32,.72,0,1);
}
.community-stats__counter:hover .community-stats__number::after {
  width:70%;
}
.community-stats__counter--featured:hover .community-stats__number::after {
  background:linear-gradient(90deg, transparent, rgba(212,176,96,0.6), transparent);
}

/* ── Stats Counter: Enhanced Hover Glow ── */
.community-stats__counter:hover {
  border-color:rgba(192,168,122,0.15);
  box-shadow:0 4px 20px rgba(0,0,0,0.2), 0 0 30px rgba(192,168,122,0.04);
  transform:translateY(-2px);
  transition:all 0.4s cubic-bezier(.32,.72,0,1);
}
.community-stats__counter--featured:hover {
  border-color:rgba(212,176,96,0.25);
  box-shadow:0 4px 20px rgba(0,0,0,0.2), 0 0 30px rgba(212,176,96,0.06);
}

/* ── Top Creators: Medal Rank Colors ── */
.community-stats__creator-row:nth-child(1) .community-stats__rank {
  color:#d4b060; text-shadow:0 0 8px rgba(212,176,96,0.3);
}
.community-stats__creator-row:nth-child(2) .community-stats__rank {
  color:#c0c0c0; text-shadow:0 0 6px rgba(192,192,192,0.2);
}
.community-stats__creator-row:nth-child(3) .community-stats__rank {
  color:#cd7f32; text-shadow:0 0 6px rgba(205,127,50,0.2);
}

/* ── Top Creators: Row Hover Enhanced ── */
.community-stats__creator-row {
  transition:all 0.35s cubic-bezier(.32,.72,0,1);
}
.community-stats__creator-row:hover {
  transform:translateX(4px);
}
.community-stats__creator-row:nth-child(1):hover {
  border-color:rgba(212,176,96,0.2);
  box-shadow:0 2px 16px rgba(212,176,96,0.06);
}

/* ── Theme Chips: Glow on Hover ── */
.community-stats__chip {
  position:relative; overflow:hidden;
}
.community-stats__chip::after {
  content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(
    115deg,
    transparent 30%,
    rgba(255,255,255,0.04) 50%,
    transparent 70%);
  background-size:200% 100%;
  background-position:200% 0;
  transition:background-position 0.6s cubic-bezier(.32,.72,0,1);
}
.community-stats__chip:hover::after {
  background-position:-200% 0;
}

/* ── Detail View: Author Card Glow Border on Hover ── */
.detail-author {
  transition:all 0.4s cubic-bezier(.32,.72,0,1);
  position:relative;
}
.detail-author::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg, transparent, rgba(192,168,122,0.3), transparent);
  opacity:0; transition:opacity 0.4s;
}
.detail-author:hover {
  border-color:rgba(192,168,122,0.12);
  box-shadow:0 8px 32px rgba(0,0,0,0.2);
  transform:translateY(-2px);
}
.detail-author:hover::before {
  opacity:1;
}

/* ── Detail View: Gallery Main Image Vignette ── */
.detail-gallery-main {
  position:relative;
}
.detail-gallery-wrap::after {
  content:''; position:absolute; top:0; left:0; right:0;
  height:calc(100% - 80px); pointer-events:none; z-index:1;
  background:radial-gradient(ellipse at center, transparent 60%, rgba(6,6,8,0.2) 100%);
}

/* ── Detail View: Header Name Accent ── */
.detail-header__name {
  position:relative; display:inline-block;
}
.detail-header__name::after {
  content:'◆'; display:block; text-align:center;
  font-size:0.4rem; color:rgba(192,168,122,0.3);
  margin-top:0.45rem; letter-spacing:1em;
  text-shadow:0 0 8px rgba(192,168,122,0.15);
}
.detail-header--featured .detail-header__name::after {
  color:rgba(192,158,230,0.3);
  text-shadow:0 0 8px rgba(192,158,230,0.15);
}

/* ── Detail View: Author Stats Panel Glow ── */
.author-stats {
  transition:border-color 0.3s, box-shadow 0.3s;
}
.author-stats:hover {
  border-color:rgba(160,160,170,0.1);
  box-shadow:0 4px 20px rgba(0,0,0,0.15);
}
.author-stat__value {
  position:relative;
}
.author-stat:hover .author-stat__value {
  text-shadow:0 0 12px rgba(192,168,122,0.15);
}

/* ── Hub Action Buttons: Fill Animation ── */
.hub-action-btn {
  position:relative; overflow:hidden;
}
.hub-action-btn::before {
  content:''; position:absolute; inset:0;
  background:linear-gradient(135deg, rgba(184,68,90,0.1), rgba(184,68,90,0.05));
  transform:translateX(-101%);
  transition:transform 0.4s cubic-bezier(.32,.72,0,1);
  pointer-events:none;
}
.hub-action-btn:hover::before {
  transform:translateX(0);
}
.hub-action-btn--primary::before {
  background:linear-gradient(135deg, rgba(184,68,90,0.15), rgba(184,68,90,0.08));
}

/* ── Recent Build Cards: Enhanced Hover ── */
.recent-build-card {
  position:relative; overflow:hidden;
}
.recent-build-card::after {
  content:''; position:absolute; top:0; left:0; width:2px; height:100%;
  background:linear-gradient(180deg, rgba(192,168,122,0.4), transparent);
  opacity:0; transition:opacity 0.35s;
}
.recent-build-card:hover::after {
  opacity:1;
}
.recent-build-card:hover {
  box-shadow:0 8px 28px rgba(0,0,0,0.25), 0 0 0 1px rgba(192,168,122,0.06);
}

/* ── Similar Build Cards: Accent Line ── */
.similar-card {
  position:relative; overflow:hidden;
}
.similar-card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2px; z-index:2;
  background:linear-gradient(90deg, transparent, rgba(192,168,122,0.3), transparent);
  opacity:0; transition:opacity 0.4s;
  pointer-events:none;
}
.similar-card:hover::before {
  opacity:1;
}

/* ── Filter Bar: Enhanced Active State ── */
.filter-btn.active {
  position:relative;
}
.filter-btn.active::after {
  content:''; position:absolute; bottom:-1px; left:20%; right:20%; height:1px;
  background:linear-gradient(90deg, transparent, rgba(192,168,122,0.5), transparent);
}

/* ── Gallery View Toggle: Enhanced Active ── */
.gallery-view-btn.active {
  box-shadow:0 0 12px rgba(130,80,180,0.1);
}

/* ── Pagination: Active Glow ── */
.gallery-pagination__btn.active {
  box-shadow:0 0 12px rgba(130,80,180,0.12), 0 2px 8px rgba(0,0,0,0.2);
}

/* ── Comments Section: Accent Header ── */
.comments-header {
  position:relative;
}
.comments-title {
  position:relative;
}
.comments-ornament {
  text-shadow:0 0 8px rgba(192,168,122,0.2);
}

/* ── Like Button: Enhanced Pulse ── */
.like-btn.liked .like-btn__icon {
  text-shadow:0 0 8px rgba(224,96,122,0.4);
}

/* ── Collection Cards: Shimmer ── */
.coll-card {
  position:relative; overflow:hidden;
}
.coll-card::after {
  content:''; position:absolute; inset:0; z-index:3; pointer-events:none;
  background:linear-gradient(
    115deg,
    transparent 20%,
    rgba(255,255,255,0.03) 40%,
    rgba(255,255,255,0.06) 50%,
    rgba(255,255,255,0.03) 60%,
    transparent 80%);
  background-size:200% 100%;
  background-position:200% 0;
  transition:background-position 0.8s cubic-bezier(.32,.72,0,1);
}
.coll-card:hover::after {
  background-position:-200% 0;
}

/* ── Hub Section: Animated Section Entries ── */
.community-hub__actions {
  animation:hubSectionFadeIn 0.6s ease-out 0.3s both;
}
.community-hub__stats {
  animation:hubSectionFadeIn 0.6s ease-out 0.5s both;
}
@keyframes hubSectionFadeIn {
  from { opacity:0; transform:translateY(12px); }
  to   { opacity:1; transform:none; }
}

/* ── Detail: Screenshot Thumbnail Hover Glow ── */
.detail-gallery-thumb:hover {
  box-shadow:0 0 12px rgba(192,158,230,0.15);
}
.detail-gallery-thumb.active {
  box-shadow:0 0 16px rgba(192,158,230,0.2);
}

/* ── Gallery Card: Server Badge Hover ── */
.community-card:hover .community-card__server {
  color:var(--text-secondary);
  transition:color 0.3s;
}

/* ── Gallery Card: Style Tag Glow on Hover ── */
.community-card:hover .community-card__style-tag {
  box-shadow:0 0 8px rgba(192,158,230,0.08);
  border-color:rgba(192,158,230,0.3);
  transition:all 0.3s;
}

/* ── Gallery Card: Footer Author Name Reveal ── */
.community-card:hover .community-card__name {
  color:var(--text-primary);
  transition:color 0.3s;
}

/* ── Detail View: Share Button Hover Glow ── */
.share-btn:hover {
  box-shadow:0 0 8px rgba(160,160,170,0.08);
}

/* ── Hub: Stats Section Divider Glow ── */
.community-hub__stats .divider span {
  text-shadow:0 0 12px rgba(192,168,122,0.15);
}

/* ── List View: Preserve shimmer but hide accent line ── */
.community-grid--list .community-card::before {
  display:none;
}
.community-grid--list .community-card__img-wrap::before {
  display:none;
}

/* ── Premium Responsive Adjustments ── */
@media (max-width:768px) {
  .community-card::after,
  .community-card--featured::after { background-position:0 0 !important; transition:none; }
  .community-card:hover::after,
  .community-card--featured:hover::after { background-position:0 0 !important; }
  .community-card:hover { transform:none; }
  .community-card:hover .community-card__house::after { width:40%; }
  .hub-action-btn::before { display:none; }
  .community-hub__hero-content::before { font-size:0.9rem; }
  .community-stats__counter:hover { transform:none; }
  .community-stats__creator-row:hover { transform:none; }
  .detail-author:hover { transform:none; }
  .recent-build-card:hover { transform:none; }
  .similar-card:hover { transform:none; }
  .coll-card::after { display:none; }
}

@media (prefers-reduced-motion: reduce) {
  .community-card::after,
  .community-card--featured::after { transition:none !important; }
  .community-hub__hero-content::before { animation:none; opacity:0.7; }
  .hub-action-btn::before { transition:none; }
  .community-hub__actions,
  .community-hub__stats { animation:none; opacity:1; }
  .community-stats__chip::after { display:none; }
  .coll-card::after { display:none; }
  .gallery-hero__sigil { animation:none !important; opacity:0.4; }
  .gfb-pill--active::before { animation:none; }
  .gallery-footer-ornament { animation:none; opacity:0.3; }
}

/* ══════════════════════════════════════════════════════════════
   GALLERY PAGE — Premium Redesign v4.0
   ══════════════════════════════════════════════════════════════ */

/* ── Gallery Back Link ── */
.gallery-back {
  margin-bottom:0.5rem;
  opacity:0.6; transition:opacity 0.3s, color 0.3s;
}
.gallery-back:hover { opacity:1; }

/* ── Gallery Hero Header ── */
.gallery-hero {
  text-align:center; padding:1.5rem 1rem 1rem; position:relative;
}
.gallery-hero__sigil {
  font-size:1.4rem; color:rgba(192,168,122,0.25);
  margin-bottom:0.3rem; letter-spacing:0.5em;
  text-shadow:0 0 20px rgba(192,168,122,0.15);
  animation:gallerySigilPulse 4s ease-in-out infinite;
}
@keyframes gallerySigilPulse {
  0%, 100% { opacity:0.4; text-shadow:0 0 20px rgba(192,168,122,0.15); }
  50%      { opacity:0.85; text-shadow:0 0 30px rgba(192,168,122,0.3), 0 0 60px rgba(192,168,122,0.08); }
}
.gallery-hero__title {
  font-family:var(--font-display);
  font-size:clamp(1.1rem, 3vw, 1.6rem);
  letter-spacing:0.18em; text-transform:uppercase;
  margin:0.5rem 0 0.3rem;
  background:linear-gradient(135deg, var(--text-primary) 30%, #c0a87a 100%);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent;
  background-clip:text;
  text-shadow:none;
}
.gallery-hero__subtitle {
  font-family:var(--font-body); font-style:italic;
  color:#a8a49c; font-size:clamp(0.88rem, 1.8vw, 1.05rem);
  margin-top:0.25rem; line-height:1.6;
}
.gallery-hero__count {
  font-family:var(--font-label); font-size:0.46rem;
  letter-spacing:0.2em; text-transform:uppercase;
  color:rgba(192,168,122,0.5); margin-top:0.6rem;
}
/* Hero bottom accent line */
.gallery-hero::after {
  content:''; position:absolute; bottom:0; left:10%; right:10%; height:1px;
  background:linear-gradient(90deg,
    transparent, rgba(192,168,122,0.15) 30%, rgba(192,168,122,0.25) 50%, rgba(192,168,122,0.15) 70%, transparent);
}

/* ── Gallery Filter Pills (Row 1 Replacement) ── */
.gfb-pill {
  display:inline-flex; align-items:center; gap:0.35rem;
  font-family:var(--font-label); font-size:0.52rem;
  letter-spacing:0.16em; text-transform:uppercase;
  color:var(--text-dim); text-decoration:none;
  padding:0.45em 1.1em;
  border:1px solid rgba(160,160,170,0.1);
  background:rgba(12,12,16,0.4);
  position:relative; overflow:hidden;
  transition:all 0.35s cubic-bezier(.32,.72,0,1);
  cursor:pointer;
}
.gfb-pill__icon {
  font-size:0.75em; opacity:0.6;
  transition:opacity 0.3s, transform 0.3s;
}
.gfb-pill:hover {
  border-color:rgba(192,168,122,0.2);
  color:var(--text-secondary);
  background:rgba(192,168,122,0.04);
}
.gfb-pill:hover .gfb-pill__icon {
  opacity:1; transform:scale(1.15);
}

/* Active pill — gold accent */
.gfb-pill--active {
  border-color:rgba(192,168,122,0.35);
  color:#c0a87a;
  background:rgba(192,168,122,0.06);
  box-shadow:0 0 16px rgba(192,168,122,0.06);
}
.gfb-pill--active .gfb-pill__icon {
  opacity:1; color:#d4b060;
}
/* Active indicator bar */
.gfb-pill--active::before {
  content:''; position:absolute; bottom:-1px; left:15%; right:15%; height:2px;
  background:linear-gradient(90deg, transparent, rgba(192,168,122,0.6), transparent);
  animation:pillGlow 2.5s ease-in-out infinite;
}
@keyframes pillGlow {
  0%, 100% { opacity:0.6; }
  50%      { opacity:1; }
}

/* Action pill — crimson accent */
.gfb-pill--action {
  border-color:rgba(184,68,90,0.2);
  color:rgba(184,68,90,0.7);
}
.gfb-pill--action:hover {
  border-color:rgba(184,68,90,0.4);
  color:var(--crimson);
  background:rgba(184,68,90,0.06);
}

/* ── Filter Bar: Enhanced Glass Effect ── */
.gallery-filter-bar {
  background:linear-gradient(180deg, rgba(8,8,10,0.94) 0%, rgba(6,6,8,0.9) 100%);
  border-bottom:1px solid rgba(192,168,122,0.06);
  box-shadow:0 4px 24px rgba(0,0,0,0.2);
}
.gallery-filter-bar.scrolled {
  border-bottom-color:rgba(192,168,122,0.1);
  box-shadow:0 8px 32px rgba(0,0,0,0.4), 0 0 0 1px rgba(192,168,122,0.03);
}

/* ── Filter Select: Enhanced Focus ── */
.filter-select:focus {
  border-color:rgba(192,168,122,0.3);
  box-shadow:0 0 12px rgba(192,168,122,0.06);
}

/* ── Search Wrap: Glow on Focus ── */
.gallery-search-wrap:focus-within {
  border-color:rgba(192,168,122,0.2);
  box-shadow:0 0 12px rgba(192,168,122,0.04);
}
.gallery-search-icon {
  transition:color 0.3s, text-shadow 0.3s;
}
.gallery-search-wrap:focus-within .gallery-search-icon {
  color:rgba(192,168,122,0.6);
  text-shadow:0 0 6px rgba(192,168,122,0.2);
}

/* ── Filter Chips: Premium Dismiss ── */
.filter-chip {
  position:relative; overflow:hidden;
  border-radius:0;
}
.filter-chip::before {
  content:''; position:absolute; left:0; top:0; bottom:0; width:2px;
  background:rgba(192,168,122,0.3);
  transition:background 0.2s;
}
.filter-chip:hover::before {
  background:rgba(200,80,100,0.5);
}

/* ── Gallery Empty State: Enhanced ── */
.gallery-empty {
  padding:5rem 1.5rem; position:relative;
  background:rgba(12,12,16,0.2);
  border:1px dashed rgba(160,160,170,0.08);
}
.gallery-empty__sigil {
  font-size:1rem; color:rgba(192,168,122,0.2);
  margin-bottom:0.5rem;
  text-shadow:0 0 12px rgba(192,168,122,0.1);
}
.gallery-empty__icon {
  font-size:3rem; margin-bottom:0.75rem; opacity:0.2;
  text-shadow:0 0 20px rgba(160,160,170,0.1);
}
.gallery-empty__rule {
  font-family:var(--font-label); font-size:0.5rem;
  letter-spacing:0.3em; color:rgba(192,168,122,0.25);
  margin:1rem 0 0.75rem;
}

/* ── View Toggle: Enhanced ── */
.gallery-view-toggle {
  margin-top:1.25rem; padding:0.5rem 0.15rem;
  border-bottom:1px solid rgba(160,160,170,0.04);
}
.gallery-view-toggle__info {
  position:relative; padding-left:0.8rem;
}
.gallery-view-toggle__info::before {
  content:'◇'; position:absolute; left:0; top:50%; transform:translateY(-50%);
  font-size:0.5rem; color:rgba(192,168,122,0.35);
}
.gallery-view-btn {
  border-radius:0;
}

/* ── Gallery Grid: Staggered Entrance ── */
.community-grid .community-card {
  animation:galleryCardReveal 0.5s cubic-bezier(.32,.72,0,1) both;
}
.community-grid .community-card:nth-child(1)  { animation-delay:0.03s; }
.community-grid .community-card:nth-child(2)  { animation-delay:0.06s; }
.community-grid .community-card:nth-child(3)  { animation-delay:0.09s; }
.community-grid .community-card:nth-child(4)  { animation-delay:0.12s; }
.community-grid .community-card:nth-child(5)  { animation-delay:0.15s; }
.community-grid .community-card:nth-child(6)  { animation-delay:0.18s; }
.community-grid .community-card:nth-child(7)  { animation-delay:0.21s; }
.community-grid .community-card:nth-child(8)  { animation-delay:0.24s; }
.community-grid .community-card:nth-child(9)  { animation-delay:0.27s; }
.community-grid .community-card:nth-child(10) { animation-delay:0.30s; }
.community-grid .community-card:nth-child(11) { animation-delay:0.33s; }
.community-grid .community-card:nth-child(12) { animation-delay:0.36s; }
.community-grid .community-card:nth-child(n+13) { animation-delay:0.39s; }
@keyframes galleryCardReveal {
  from { opacity:0; transform:translateY(18px) scale(0.98); }
  to   { opacity:1; transform:none; }
}

/* ── Pagination: Enhanced ── */
.gallery-pagination {
  position:relative; padding-top:2rem; margin-top:3rem;
}
.gallery-pagination::before {
  content:''; position:absolute; top:0; left:15%; right:15%; height:1px;
  background:linear-gradient(90deg, transparent, rgba(192,168,122,0.12), transparent);
}
.gallery-pagination__btn {
  position:relative; overflow:hidden;
}
.gallery-pagination__btn::before {
  content:''; position:absolute; inset:0;
  background:rgba(192,168,122,0.05);
  transform:translateY(101%);
  transition:transform 0.3s cubic-bezier(.32,.72,0,1);
  pointer-events:none;
}
.gallery-pagination__btn:hover::before {
  transform:translateY(0);
}
.gallery-pagination__btn.active::before {
  background:rgba(130,80,180,0.08);
  transform:translateY(0);
}

/* ── Gallery Footer Ornament ── */
.gallery-footer-ornament {
  text-align:center; padding:2.5rem 0 1rem;
  font-family:var(--font-label); font-size:0.55rem;
  letter-spacing:0.4em; color:rgba(192,168,122,0.2);
  text-shadow:0 0 12px rgba(192,168,122,0.08);
  animation:footerOrnPulse 5s ease-in-out infinite;
}
@keyframes footerOrnPulse {
  0%, 100% { opacity:0.5; }
  50%      { opacity:0.8; }
}

/* ── Gallery Card: Enhanced View Button ── */
.community-card__view-btn {
  border:1px solid rgba(192,168,122,0.15);
  letter-spacing:0.18em;
}
.community-card:hover .community-card__view-btn {
  box-shadow:0 4px 20px rgba(0,0,0,0.6), 0 0 0 1px rgba(192,168,122,0.08);
}
.community-card--featured:hover .community-card__view-btn {
  border-color:rgba(192,158,230,0.2);
  box-shadow:0 4px 20px rgba(0,0,0,0.6), 0 0 0 1px rgba(192,158,230,0.08);
}

/* ── Gallery Card: Description Drop Cap ── */
.community-card__desc::first-letter {
  font-family:var(--font-display);
  font-size:1.35em; line-height:1;
  color:rgba(192,168,122,0.55);
  float:left; margin-right:0.08em;
  font-style:normal;
}

/* ── Gallery Card: Image Count Badge Enhancement ── */
.community-card__imgcount {
  transition:all 0.3s;
}
.community-card:hover .community-card__imgcount {
  border-color:rgba(192,168,122,0.15);
  background:rgba(6,6,10,0.85);
}

/* ── Gallery Card: Size Badge Enhancement ── */
.community-card__size-badge {
  transition:all 0.3s;
}
.community-card:hover .community-card__size-badge {
  background:rgba(6,6,10,0.85);
}

/* ── Slide-out Filter Panel (LEFT side) ────────────────── */
.gallery-main { min-width: 0; }
.gallery-main__search { margin-bottom: 0.75rem; }

/* Overlay */
.filter-panel-overlay {
  position: fixed;
  inset: 0;
  z-index: 900;
  background: rgba(2,2,4,0.6);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.35s cubic-bezier(.4,0,.2,1);
}
.filter-panel-overlay.open {
  opacity: 1;
  pointer-events: auto;
}

/* Panel — LEFT side */
.filter-panel {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 910;
  width: 360px;
  max-width: 92vw;
  height: 100vh;
  overflow-y: auto;
  background: rgba(8,8,12,0.98);
  border-right: 1px solid rgba(212,176,96,0.15);
  box-shadow: 8px 0 48px rgba(0,0,0,0.7), inset -1px 0 0 rgba(255,255,255,0.04);
  transform: translateX(-100%);
  transition: transform 0.4s cubic-bezier(.4,0,.2,1);
  display: flex;
  flex-direction: column;
}
.filter-panel.open {
  transform: translateX(0);
}

/* Panel header */
.filter-panel__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.4rem 1.5rem 1.1rem;
  border-bottom: 1px solid rgba(212,176,96,0.12);
  background: rgba(212,176,96,0.03);
}
.filter-panel__title {
  font-family: var(--font-display, 'Cinzel', serif);
  font-size: 1.15rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold, #d4b060);
  text-shadow: 0 0 20px rgba(212,176,96,0.3);
}
.filter-panel__close {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.2);
  color: rgba(255,255,255,0.85);
  width: 40px;
  height: 40px;
  border-radius: 50%;
  font-size: 0.85rem;
  cursor: pointer;
  transition: all 0.25s;
  display: flex;
  align-items: center;
  justify-content: center;
}
.filter-panel__close:hover {
  border-color: var(--gold, #d4b060);
  color: var(--gold, #d4b060);
  background: rgba(212,176,96,0.12);
}

/* Panel sections */
.filter-panel__section {
  padding: 1rem 1.5rem;
}
.filter-panel__divider {
  text-align: center;
  font-size: 0.45rem;
  color: rgba(212,176,96,0.25);
  padding: 0.4rem 0;
  letter-spacing: 0.3em;
}

/* Panel tabs */
.filter-panel__tabs {
  display: flex;
  gap: 0.4rem;
}
.filter-panel__tab {
  flex: 1;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: 8px;
  padding: 0.75rem 0.5rem;
  font-family: var(--font-label, 'Inter', sans-serif);
  font-size: 0.82rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.9);
  cursor: pointer;
  transition: all 0.25s;
  text-align: center;
}
.filter-panel__tab:hover {
  border-color: rgba(212,176,96,0.25);
  color: rgba(255,255,255,0.9);
  background: rgba(255,255,255,0.07);
}
.filter-panel__tab--active {
  border-color: rgba(212,176,96,0.5);
  color: var(--gold, #d4b060);
  background: rgba(212,176,96,0.1);
  box-shadow: 0 0 16px rgba(212,176,96,0.1);
}
.filter-panel__tab-icon {
  display: block;
  font-size: 0.95rem;
  margin-bottom: 0.2rem;
}

/* Filter form */
.filter-panel__form {
  padding: 0.75rem 1.5rem 1.5rem;
  flex: 1;
}
.filter-panel__group {
  margin-bottom: 1rem;
}
.filter-panel__label {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-family: var(--font-label, 'Inter', sans-serif);
  font-size: 0.88rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.95);
  margin-bottom: 0.55rem;
  font-weight: 600;
}
.filter-panel__label-icon {
  font-size: 0.95rem;
  color: var(--gold, #d4b060);
}

/* Selects */
.filter-panel__select {
  display: block;
  width: 100%;
  padding: 0.8rem 1rem;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.2);
  border-radius: 8px;
  color: #fff;
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 0.92rem;
  cursor: pointer;
  transition: all 0.25s;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='rgba(255,255,255,0.45)' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.7rem center;
  padding-right: 2.2rem;
}
.filter-panel__select:hover {
  border-color: rgba(212,176,96,0.3);
  background-color: rgba(255,255,255,0.08);
}
.filter-panel__select:focus {
  outline: none;
  border-color: rgba(212,176,96,0.45);
  box-shadow: 0 0 0 3px rgba(212,176,96,0.1);
}
.filter-panel__select option {
  background: #0e0e12;
  color: rgba(255,255,255,0.9);
}

/* Text inputs */
.filter-panel__input {
  display: block;
  width: 100%;
  padding: 0.8rem 1rem;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.2);
  border-radius: 8px;
  color: #fff;
  font-family: var(--font-body, 'Inter', sans-serif);
  font-size: 0.92rem;
  transition: all 0.25s;
  box-sizing: border-box;
}
.filter-panel__input::placeholder {
  color: rgba(255,255,255,0.5);
}
.filter-panel__input:hover {
  border-color: rgba(212,176,96,0.3);
  background-color: rgba(255,255,255,0.08);
}
.filter-panel__input:focus {
  outline: none;
  border-color: rgba(212,176,96,0.45);
  box-shadow: 0 0 0 3px rgba(212,176,96,0.1);
}

/* Search button */
.filter-panel__search-btn-wrap {
  margin-bottom: 0.75rem;
}
.filter-panel__search-btn {
  width: 100%;
  padding: 0.85rem 1rem;
  background: rgba(212,176,96,0.15);
  border: 1px solid rgba(212,176,96,0.45);
  border-radius: 8px;
  color: var(--gold, #d4b060);
  font-family: var(--font-label, 'Inter', sans-serif);
  font-size: 0.88rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: all 0.25s;
}
.filter-panel__search-btn:hover {
  background: rgba(212,176,96,0.2);
  border-color: rgba(212,176,96,0.5);
  box-shadow: 0 0 16px rgba(212,176,96,0.12);
}

/* Chip filters (All / Featured) */
.filter-panel__chips {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
}
.filter-panel__chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.6rem 1.2rem;
  border: 1px solid rgba(255,255,255,0.2);
  border-radius: 20px;
  font-family: var(--font-label, 'Inter', sans-serif);
  font-size: 0.82rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.92);
  text-decoration: none;
  transition: all 0.25s;
}
.filter-panel__chip:hover {
  border-color: rgba(212,176,96,0.3);
  color: rgba(255,255,255,0.9);
  background: rgba(255,255,255,0.05);
}
.filter-panel__chip--active {
  border-color: rgba(212,176,96,0.5);
  color: var(--gold, #d4b060);
  background: rgba(212,176,96,0.1);
}

/* Action links */
.filter-panel__action {
  display: block;
  padding: 0.85rem 1.5rem;
  font-family: var(--font-label, 'Inter', sans-serif);
  font-size: 0.88rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.9);
  text-decoration: none;
  transition: all 0.25s;
  border-top: 1px solid rgba(255,255,255,0.06);
}
.filter-panel__action:hover {
  background: rgba(212,176,96,0.08);
  color: var(--gold, #d4b060);
}
.filter-panel__action--primary {
  color: var(--gold, #d4b060);
  background: rgba(212,176,96,0.06);
  font-weight: 600;
}
.filter-panel__action--primary:hover {
  background: rgba(212,176,96,0.15);
}

/* ══ Panel Toggle — side-pull arrow tab ══════════════════ */
@keyframes togglePulse {
  0%, 100% { box-shadow: 0 0 12px rgba(212,176,96,0.1); }
  50% { box-shadow: 0 0 24px rgba(212,176,96,0.3); }
}
.panel-toggle {
  position: fixed;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  z-index: 800;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  width: 36px;
  height: 72px;
  padding: 0;
  background: rgba(12,12,16,0.96);
  border: 2px solid rgba(212,176,96,0.45);
  border-left: none;
  border-radius: 0 12px 12px 0;
  color: var(--gold, #d4b060);
  cursor: pointer;
  transition: all 0.3s cubic-bezier(.4,0,.2,1);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  animation: togglePulse 3s ease-in-out infinite;
}
.panel-toggle:hover {
  width: 44px;
  background: rgba(212,176,96,0.12);
  border-color: rgba(212,176,96,0.7);
  box-shadow: 0 0 28px rgba(212,176,96,0.25);
  animation: none;
}
.panel-toggle:active {
  width: 40px;
}
.panel-toggle__arrow {
  font-size: 1.6rem;
  font-weight: 300;
  line-height: 1;
  color: var(--gold, #d4b060);
  filter: drop-shadow(0 0 6px rgba(212,176,96,0.35));
  transition: transform 0.2s;
}
.panel-toggle:hover .panel-toggle__arrow {
  transform: translateX(3px);
}
.panel-toggle__badge {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  border-radius: 9px;
  background: var(--gold, #d4b060);
  color: #0a0a0e;
  font-family: var(--font-label, 'Inter', sans-serif);
  font-size: 0.6rem;
  font-weight: 800;
  line-height: 1;
}

/* ── Responsive: filter panel & FAB ─────────────────── */
@media (max-width: 1023px) {
  .filter-panel { width: 320px; }
}
@media (max-width: 600px) {
  .filter-panel { width: 100%; max-width: 100vw; }
  .filter-panel__header { padding: 1.1rem 1rem; }
  .filter-panel__section { padding: 0.75rem 1rem; }
  .filter-panel__form { padding: 0.5rem 1rem 1rem; }
  .panel-toggle { width: 30px; height: 56px; }
  .panel-toggle__arrow { font-size: 1.3rem; }
}

/* ── Gallery Responsive ── */
@media (max-width:768px) {
  .gallery-hero__sigil { font-size:1rem; }
  .gallery-hero__title { letter-spacing:0.12em; }
  .gfb-pill { padding:0.4em 0.85em; font-size:0.48rem; }
  .gfb-pill--active::before { display:none; }
  .community-grid .community-card { animation:none !important; opacity:1; }
  .gallery-footer-ornament { padding:2rem 0 0.75rem; }
  .gallery-pagination::before { left:5%; right:5%; }
  .community-card__desc::first-letter { float:none; font-size:inherit; color:inherit; }
}
@media (max-width:480px) {
  .gallery-hero { padding:1rem 0.75rem 0.75rem; }
  .gallery-hero__count { font-size:0.4rem; }
  .gfb-pill { padding:0.35em 0.7em; font-size:0.44rem; }
  .gfb-pill__icon { display:none; }
}

/* ── Load More ── */
.community-load-more {
  text-align:center; padding:2.5rem 0; margin-top:1rem;
}
.community-load-more__btn {
  font-family:var(--font-label); font-size:.6rem; letter-spacing:.25em;
  text-transform:uppercase; padding:.8em 3em;
  color:var(--text-dim); background:transparent;
  border:1px solid rgba(160,150,130,.1); border-radius:8px;
  cursor:pointer; transition:all .35s cubic-bezier(.32,.72,0,1);
  display:inline-flex; align-items:center; gap:.5em;
}
.community-load-more__btn:hover {
  color:var(--text-primary); border-color:rgba(184,68,90,.25);
  background:rgba(184,68,90,.04);
  box-shadow:0 0 20px rgba(184,68,90,.04);
}
.community-load-more__spinner {
  width:12px; height:12px;
}
