/* Gateway motion: enhancement only. Nothing is hidden while waiting for JavaScript. */
:root {
  --gateway-ease: cubic-bezier(.22, 1, .36, 1);
  --gateway-motion-accent: var(--brand-cyan, #00a8c6);
}

/* Neutralize the previous hidden-until-observed reveal state. */
.reveal.will-reveal {
  opacity: 1;
  transform: none;
}

.use-panel.is-entering { animation: none; }

.reading-progress {
  position: absolute;
  inset: auto 0 0;
  height: 2px;
  overflow: hidden;
  pointer-events: none;
  z-index: 3;
}
.reading-progress > span {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, var(--gateway-motion-accent), #75dce9);
  transform: scaleX(0);
  transform-origin: left center;
}

.btn,
.filter-tab,
.use-tab,
.gallery-item,
.round-arrow,
.nav-panel a,
.menu-toggle {
  transition-timing-function: var(--gateway-ease);
}
.btn:active,
.round-arrow:active,
.filter-tab:active,
.menu-toggle:active {
  transform: translateY(0) scale(.98);
}
.use-tab:active { transform: translateX(0) scale(.99); }
.text-link svg,
.card-link svg,
.use-tab svg {
  transition: transform 240ms var(--gateway-ease), color 240ms ease;
}
.text-link:hover svg,
.text-link:focus-visible svg,
.space-card:hover .card-link svg,
.space-card:focus-visible .card-link svg,
.use-tab[aria-selected="true"] svg { transform: translateX(3px); }

.main-nav > a:not(.btn),
.subnav-links a {
  transition: color 180ms ease, background-color 180ms ease;
}
.faq-list summary { transition: color 180ms ease; }
.faq-list summary:hover,
.faq-list details[open] summary { color: var(--accent); }
.faq-list summary::after { transition: color 180ms ease; }

@media (hover: hover) and (pointer: fine) {
  .space-card,
  .gallery-item,
  .amenity-tile,
  .include-item,
  .benefit-item {
    transition: transform 300ms var(--gateway-ease), box-shadow 300ms var(--gateway-ease), border-color 240ms ease;
  }
  .gallery-item:hover { transform: translateY(-3px); }
  .amenity-tile:hover { transform: translateY(-3px); }
  .include-item:hover,
  .benefit-item:hover { border-color: var(--gateway-motion-accent); }
  .space-card:focus-visible,
  .gallery-item:focus-visible { transform: translateY(-3px); }
  .card-photo img,
  .gallery-item img {
    transition: transform 650ms var(--gateway-ease);
  }
  .space-card:hover .card-photo img,
  .space-card:focus-visible .card-photo img,
  .gallery-item:hover img,
  .gallery-item:focus-visible img { transform: scale(1.035); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal,
  .reveal.will-reveal { opacity: 1; transform: none; }
  *, *::before, *::after {
    animation: none !important;
    transition: none !important;
  }
  .btn:active,
  .round-arrow:active,
  .filter-tab:active,
  .menu-toggle:active,
  .use-tab:active,
  .gallery-item:hover,
  .gallery-item:focus-visible,
  .amenity-tile:hover,
  .space-card:hover,
  .space-card:focus-visible,
  .text-link:hover svg,
  .text-link:focus-visible svg,
  .space-card:hover .card-link svg,
  .space-card:focus-visible .card-link svg,
  .use-tab[aria-selected="true"] svg,
  .space-card:hover .card-photo img,
  .space-card:focus-visible .card-photo img,
  .gallery-item:hover img,
  .gallery-item:focus-visible img { transform: none; }
}
