/* MAAL Circle Lab — bespoke design rules (from original static export) */

.maal {
  font-family: "Archivo Narrow", "Manrope", sans-serif;
  font-style: italic;
  font-weight: 500;
  letter-spacing: .005em;
  text-transform: uppercase;
}
.circle {
  font-family: "Newsreader", Georgia, serif;
  font-weight: 400;
  letter-spacing: -.005em;
}
.editorial {
  font-family: "Manrope", sans-serif;
  letter-spacing: -.065em;
}
.serif {
  font-family: "Newsreader", Georgia, serif;
  letter-spacing: -.015em;
}
.serif-italic {
  font-family: "Newsreader", Georgia, serif;
  font-style: italic;
  font-weight: 300;
  letter-spacing: -.02em;
}
.mono {
  font-family: "JetBrains Mono", monospace;
}

.hairline {
  border-color: var(--line);
}

.quiet-link {
  position: relative;
}
.quiet-link::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -3px;
  height: 1px;
  width: 100%;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .55s cubic-bezier(.2, .75, .2, 1);
}
.quiet-link:hover::after {
  transform: scaleX(1);
}

.film-overlay {
  background: linear-gradient(180deg, rgba(3, 3, 3, .5) 0%, rgba(3, 3, 3, .08) 42%, rgba(3, 3, 3, .63) 100%);
}

.grain {
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)' opacity='.11'/%3E%3C/svg%3E");
  mix-blend-mode: soft-light;
}

.hero-frame {
  animation: heroPulse 14s ease-in-out infinite alternate;
  transform-origin: center;
}
@keyframes heroPulse {
  from { transform: scale(1.02) translate3d(0, 0, 0); }
  to   { transform: scale(1.095) translate3d(-1.2%, .8%, 0); }
}

.image-zoom img {
  transition: transform 1.1s cubic-bezier(.18, .75, .2, 1), filter .8s ease;
}
.image-zoom:hover img {
  transform: scale(1.025);
  filter: saturate(.86);
}

.event-row .event-arrow {
  transition: transform .3s ease;
}
.event-row:hover .event-arrow {
  transform: translate(5px, -5px);
}

#siteNav {
  transition: background-color .45s ease, color .45s ease, border-color .45s ease;
}
#siteNav.scrolled {
  background: rgba(11, 11, 10, .92);
  border-color: rgba(255, 255, 255, .12);
  backdrop-filter: blur(12px);
}

@media (prefers-reduced-motion: reduce) {
  .hero-frame { animation: none; }
  html { scroll-behavior: auto; }
}

/* Mobile menu base state (Tailwind utility classes handle most of this,
   these are safe fallbacks in case the Tailwind runtime hasn't painted yet) */
#mobileMenu {
  transition: transform .5s ease;
}

/* Editable logo / custom logo image sizing inside the fixed nav */
.site-logo img {
  max-height: 34px;
  width: auto;
}
