/* Site-wide motion — subtle and elegant, in keeping with an art gallery.
   Scroll-reveal for content blocks + refined hover transitions. */

.reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.9s cubic-bezier(0.22, 0.61, 0.36, 1),
              transform 0.9s cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: opacity, transform;
}
.reveal.is-visible {
  opacity: 1;
  transform: none;
}

/* Gentle entrance for the page on first paint */
@keyframes fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}
body {
  animation: fade-in 0.6s ease both;
}

/* Soft transitions on interactive elements */
.tab,
.link-block,
.footer a img {
  transition: opacity 0.25s ease, transform 0.25s ease;
}
.tab:hover,
.link-block:hover { opacity: 0.65; }
.footer a img:hover { opacity: 0.6; transform: translateY(-1px); }

@media (prefers-reduced-motion: reduce) {
  .reveal,
  .reveal.is-visible {
    opacity: 1;
    transform: none;
    transition: none;
  }
  body { animation: none; }
  .tab, .link-block, .footer a img { transition: none; }
}
