/* THREEFOLD FURY — Gallery-specific styles. Shared styles remain in style.css. */
.gallery-main {
  width: min(var(--page-width), calc(100% - 2 * var(--page-gutter)));
  margin: 0 auto;
  padding: 3.25rem 0 5rem;
}
.gallery-heading { text-align: center; margin-bottom: 2.5rem; }
.gallery-eyebrow { color: var(--color-bronze-light); text-transform: uppercase; letter-spacing: .16em; font-size: .7rem; }
.gallery-heading h1 { margin: .7rem 0; }
.gallery-subtitle { color: var(--color-muted); margin: 0; }
.gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 280px)); justify-content: center; gap: 1rem; }
.gallery-tile {
  display: block; width: 100%; padding: 0; overflow: hidden;
  border: 1px solid var(--color-border-soft); border-radius: 3px;
  background: var(--color-surface); cursor: pointer;
  aspect-ratio: 4 / 5; transition: border-color .2s ease, transform .2s ease;
}
.gallery-tile:hover, .gallery-tile:focus-visible { border-color: var(--color-bronze-light); transform: translateY(-2px); }
.gallery-tile img { display: block; width: 100%; height: 100%; object-fit: cover; }
.gallery-empty { text-align: center; color: var(--color-muted); padding: 3rem 0; }
.gallery-more-wrap { display: flex; justify-content: center; margin-top: 2rem; }
.gallery-more { border: 1px solid var(--color-border); background: var(--color-surface); color: var(--color-text); padding: .8rem 1.6rem; cursor: pointer; font: inherit; }
.gallery-more:hover { border-color: var(--color-bronze-light); }
.gallery-more[hidden], .gallery-empty[hidden] { display: none; }
.gallery-dialog {
  position: fixed; inset: 0; width: min(1100px, calc(100% - 32px));
  height: min(94dvh, 1100px); max-width: none; max-height: none;
  margin: auto; padding: 0; border: 1px solid var(--color-border);
  border-radius: 6px; background: var(--color-background); color: var(--color-text);
  box-shadow: 0 22px 70px rgba(0,0,0,.45);
}
.gallery-dialog::backdrop { background: rgba(0,0,0,.82); }
.gallery-dialog-shell { height: 100%; min-height: 0; display: flex; flex-direction: column; }
.gallery-dialog-header, .gallery-dialog-footer {
  flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; padding: .8rem 1rem; background: var(--color-surface);
}
.gallery-dialog-header { border-bottom: 1px solid var(--color-border-soft); }
.gallery-dialog-header > span { font-family: var(--font-display); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gallery-close, .gallery-dialog-footer button {
  color: var(--color-text); background: transparent; border: 1px solid var(--color-border);
  padding: .45rem .75rem; cursor: pointer; font: inherit;
}
.gallery-close:hover, .gallery-dialog-footer button:not(:disabled):hover { border-color: var(--color-bronze-light); }
.gallery-dialog-footer button:disabled { opacity: .35; cursor: default; }
.gallery-dialog-image-wrap { flex: 1 1 auto; min-height: 0; overflow: auto; padding: 1rem; text-align: center; }
.gallery-dialog-image-wrap img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; margin: auto; }
.gallery-zoom-controls { display: flex; align-items: center; justify-content: center; gap: .4rem; }
.gallery-zoom-controls button { min-width: 2.25rem; }
#gallery-zoom-level { min-width: 3.2rem; text-align: center; font-size: .8rem; color: var(--color-muted); font-variant-numeric: tabular-nums; }
#gallery-counter { color: var(--color-muted); font-size: .8rem; white-space: nowrap; }
@media (max-width: 680px) {
  .gallery-main { padding-top: 2.25rem; }
  .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
  .gallery-dialog { width: 100%; height: 100dvh; border: 0; border-radius: 0; }
  .gallery-dialog-image-wrap { padding: .5rem; }
  .gallery-dialog-header, .gallery-dialog-footer { padding: .7rem; }
  .gallery-dialog-footer { flex-wrap: wrap; justify-content: space-between; }
  .gallery-zoom-controls { order: -1; width: 100%; }
  .gallery-dialog-footer button { font-size: .8rem; padding: .5rem; }
}
@media (prefers-reduced-motion: reduce) { .gallery-tile { transition: none; } }

/* Desktop drag-to-pan for zoomed artwork; touch keeps native scrolling. */
.gallery-dialog-image-wrap {
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.gallery-dialog-image-wrap::-webkit-scrollbar { display: none; }
@media (pointer: fine) {
  .gallery-dialog-image-wrap.is-zoomed { cursor: grab; }
  .gallery-dialog-image-wrap.is-panning { cursor: grabbing; user-select: none; }
}
.gallery-dialog-image-wrap img { -webkit-user-drag: none; }

.site-header {
    justify-content: flex-end;
}
/* Gesture-driven artwork viewer (desktop wheel + touch pinch/pan). */
.gallery-dialog-image-wrap {
  position: relative;
  overflow: hidden;
  padding: 0;
  touch-action: none;
  user-select: none;
}
.gallery-dialog-image-wrap img {
  position: absolute;
  left: 50%;
  top: 50%;
  display: block;
  margin: 0;
  max-width: none;
  max-height: none;
  pointer-events: none;
  transform-origin: center center;
  -webkit-user-drag: none;
}
@media (max-width: 680px) {
  .gallery-dialog-image-wrap { padding: 0; }
}
