/* Leona gallery sets — magazine layout, shared across character houses.
   Prefix: gset- / glb- */

.gset { margin: 0 0 3.5rem; padding-bottom: 3rem; border-bottom: 1px solid var(--line); }
.gset:last-of-type { margin-bottom: 0; padding-bottom: 0; border-bottom: 0; }
.gset-head { display: flex; align-items: center; gap: .65rem 1rem; flex-wrap: wrap; margin: 0 0 1.15rem; }
.gset-head h3 { font-size: 1.7rem; margin: 0; letter-spacing: -.01em; line-height: 1.15; }
.gset-head .gset-arc { color: var(--muted); opacity: 1; font-size: .8rem; text-transform: uppercase; letter-spacing: .14em; margin-left: auto; }
.miles .gset-head .work-number { width: auto; height: auto; min-width: 32px; border-radius: 999px; padding: 4px 10px; line-height: 1.2; white-space: nowrap; }
.gset-cover { margin: 0 0 .85rem; }
.gset-cover img { width: 100%; height: auto; display: block; border-radius: 8px; border: 1px solid var(--line); transition: transform .18s ease, box-shadow .18s ease; }
.gset-reels { display: grid; grid-template-columns: repeat(4, 1fr); gap: .85rem; margin: 0 0 1.35rem; align-items: start; }
.gset-reels figure { margin: 0; display: flex; flex-direction: column; }
.gset-reels img { width: 100%; height: auto; display: block; border-radius: 8px; border: 1px solid var(--line); transition: transform .18s ease, box-shadow .18s ease; }
.gset img { cursor: zoom-in; }
.gset-cover img:hover, .gset-reels img:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0,0,0,.18); }
.gset figcaption { margin-top: .45rem; font-family: Arial, Helvetica, sans-serif; font-size: .78rem; line-height: 1.45; color: var(--muted); }
.gset-bio { font-size: 1.05rem; line-height: 1.68; max-width: 65ch; margin: 0 0 .7rem; }
.gset-reason { color: var(--muted); opacity: 1; line-height: 1.65; max-width: 65ch; margin: 0 0 .7rem; font-size: .95rem; }
.gset-reason .gset-label { text-transform: uppercase; letter-spacing: .12em; font-size: .74rem; color: var(--accent); opacity: 1; display: block; margin-bottom: .25rem; font-weight: 700; }
.tessa .gset-reason .gset-label { color: #705000; }
.gset-tags { color: var(--muted); opacity: 1; font-size: .85rem; letter-spacing: .01em; margin: 0; }
@media (max-width: 640px) {
  .gset { margin: 0 0 2.5rem; padding-bottom: 2.25rem; }
  .gset-head { gap: .45rem .75rem; }
  .gset-head .gset-arc { margin-left: 0; width: 100%; }
  .gset-reels { grid-template-columns: repeat(2, 1fr); gap: .7rem; }
  .gset-head h3 { font-size: 1.4rem; }
}

/* Lightbox — full-frame viewing */
.glb { position: fixed; inset: 0; background: rgba(0,0,0,.96); z-index: 90;
  display: none; align-items: center; justify-content: center; flex-direction: column; }
.glb.open { display: flex; }
.glb img { max-width: 97vw; max-height: 88vh; object-fit: contain; }
.glb-cap { color: #ddd; margin-top: .8rem; font-size: .95rem; text-align: center; padding: 0 1rem; }
.glb-btn { position: absolute; background: none; border: 0; color: #eee; cursor: pointer;
  font-size: 2rem; line-height: 1; padding: .6rem .9rem; opacity: .85; }
.glb-btn:hover { opacity: 1; }
.glb-close { top: .4rem; right: .6rem; }
.glb-prev { left: .2rem; top: 50%; transform: translateY(-50%); }
.glb-next { right: .2rem; top: 50%; transform: translateY(-50%); }

