/* AccordionGallery (vanilla port of the React Bits component) + contact-card tweaks. */
.accordion-gallery {
  --ag-accent: #ffffff;
  --ag-overlay: #060010;
  --ag-text: #ffffff;
  --ag-gap: 10px;
  --ag-radius: 16px;
  --ag-media-size: 320px;
  display: flex;
  flex-direction: row;
  gap: var(--ag-gap);
  width: 100%;
  max-width: 100%;
  perspective: 1400px;
  perspective-origin: 50% 50%;
}
.accordion-gallery--vertical { flex-direction: column; }
.ag-panel {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  border-radius: var(--ag-radius);
  cursor: pointer;
  display: block;
  text-decoration: none;
  outline: none;
  transform-style: preserve-3d;
  transform-origin: center center;
  background: #fbefdc;
  border: 2px solid var(--ink, #6b4f45);
  box-shadow: 3px 5px 0 #6b4f4533;
  will-change: flex-grow, transform;
  -webkit-tap-highlight-color: transparent;
}
.ag-panel:focus-visible { box-shadow: 0 0 0 3px var(--ag-accent), 3px 5px 0 #6b4f4533; }
.ag-panel__frame { position: absolute; inset: 0; overflow: hidden; border-radius: inherit; }
.ag-panel__media {
  --ag-gray: 1;
  --ag-dim: 0.35;
  position: absolute;
  top: 50%;
  left: 50%;
  width: var(--ag-media-size);
  height: 100%;
  filter: grayscale(var(--ag-gray));
  will-change: transform, filter;
}
.accordion-gallery--vertical .ag-panel__media { width: 100%; height: var(--ag-media-size); }
.ag-panel__media img { width: 100%; height: 100%; object-fit: cover; display: block; user-select: none; -webkit-user-drag: none; }
.ag-panel__overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(180deg, transparent 58%, color-mix(in srgb, var(--ag-overlay) 62%, transparent) 100%),
    color-mix(in srgb, var(--ag-wash, var(--ag-overlay)) calc(var(--ag-dim, 0.35) * 100%), transparent);
}
.ag-panel__label { position: absolute; left: 18px; bottom: 18px; right: 18px; display: flex; align-items: center; gap: 12px; pointer-events: none; z-index: 2; }
.ag-panel__bar {
  flex: 0 0 auto;
  width: 4px;
  height: 40px;
  border-radius: 3px;
  background: var(--ag-accent);
  opacity: 0;
  box-shadow: 0 0 12px color-mix(in srgb, var(--ag-accent) 60%, transparent);
}
.ag-panel__text {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  color: var(--ag-text);
  opacity: 0;
  text-shadow: 0 2px 10px rgba(60, 40, 35, 0.45);
}
.ag-panel__text b {
  font-family: var(--display, 'ZCOOL KuaiLe', sans-serif);
  font-weight: 400;
  font-size: clamp(1.1rem, 1.5vw, 1.45rem);
  letter-spacing: 0.02em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ag-panel__text small { font-size: 13px; font-weight: 700; letter-spacing: 0.02em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 520px) {
  .accordion-gallery { flex-direction: column; perspective: none; height: auto !important; }
  .ag-panel { min-height: 84px; transform: none !important; }
  .accordion-gallery .ag-panel__media { width: 100%; height: var(--ag-media-size); }
  .ag-panel--active { min-height: 260px; }
}
@media (prefers-reduced-motion: reduce) {
  .ag-panel, .ag-panel__media { will-change: auto; }
}

/* contact panel: collapsed cards fade toward paper instead of darkening */
.contact-cards .accordion-gallery { --ag-wash: #fff8ec; }
.contact-cards { margin-top: 26px; }
.contact-hint { font-size: 12px !important; margin: 12px 0 0 !important; }
.contact-toast {
  position: absolute; left: 50%; bottom: 28px; transform: translate(-50%, 12px); opacity: 0; pointer-events: none;
  background: var(--ink, #6b4f45); color: #fff8ec; border-radius: 999px; padding: 9px 18px; font-size: 13px; font-weight: 700;
  transition: opacity .25s ease, transform .25s ease;
}
.contact-toast[data-show] { opacity: 1; transform: translate(-50%, 0); }
