/* Quiet, finite movement: typography, real photography and tactile controls. */
:root { --motion-lux: cubic-bezier(.22,1,.36,1); }
.motion-word { display: inline-block; }
.graphic-site .button:not(.gallery-open) { position: relative; }
.graphic-site .button {
  overflow: hidden;
  isolation: isolate;
  transition: transform 260ms var(--motion-lux), box-shadow 300ms var(--motion-lux), background-color 240ms ease;
}
/* A single light pass follows a deliberate interaction, never a looping shimmer. */
.graphic-site .button::before {
  content: '';
  position: absolute;
  inset: -40% -25%;
  pointer-events: none;
  z-index: -1;
  background: linear-gradient(110deg, transparent 35%, rgba(255,255,248,.45) 49%, transparent 63%);
  transform: translateX(-110%);
}
.graphic-site .button:focus-visible::before { animation: glass-light-pass 700ms var(--motion-lux); }
.graphic-site .button .icon, .text-link .icon, .discovery-link > span {
  transition: transform 320ms var(--motion-lux);
}
.graphic-site .button:active { transform: translateY(0) scale(.98); }
@media (hover:hover) and (pointer:fine) {
  .graphic-site .button:hover { transform: translateY(-2px); box-shadow: 0 8px 22px #233e281c; }
  .graphic-site .button:hover::before { animation: glass-light-pass 700ms var(--motion-lux); }
  .graphic-site .button:hover .icon, .text-link:hover .icon, .discovery-card:hover .discovery-link > span { transform: translateX(4px); }
  .graphic-site .card-photo img, .graphic-site .journal-image img, .graphic-site .gallery-photo img {
    transition: transform 850ms var(--motion-lux);
  }
  .graphic-site .activity-card:hover .card-photo img,
  .graphic-site .journal-image:hover img,
  .graphic-site .gallery-photo:hover img { transform: scale(1.035); }
  .graphic-site .scene-glass { transition: box-shadow 400ms ease, background-color 400ms ease; }
  .graphic-site .scene-glass:hover { box-shadow: var(--optical-shadow), 0 18px 50px #253b2729; }
}
.experience-mega:not([hidden]), .mobile-nav:not([hidden]) {
  animation: glass-arrive 300ms var(--motion-lux);
}
.lightbox[open]::backdrop { animation: backdrop-arrive 260ms ease-out; }
.faq-list details[open] .faq-answer { animation: answer-arrive 280ms var(--motion-lux); }
@keyframes glass-light-pass { to { transform: translateX(110%); } }
@keyframes glass-arrive { from { opacity:0; translate:0 -6px; } to { opacity:1; translate:0 0; } }
@keyframes backdrop-arrive { from { opacity:0; } to { opacity:1; } }
@keyframes answer-arrive { from { opacity:0; transform:translateY(-4px); } to { opacity:1; transform:translateY(0); } }
.motion-paused .button::before,
.motion-paused .experience-mega,
.motion-paused .mobile-nav,
.motion-paused .faq-answer,
.motion-paused .lightbox::backdrop { animation: none !important; }
.motion-paused .button, .motion-paused .button .icon,
.motion-paused .text-link .icon, .motion-paused .scene-glass,
.motion-paused .card-photo img, .motion-paused .journal-image img,
.motion-paused .gallery-photo img { transition: none !important; }
@media (prefers-reduced-motion:reduce) {
  .graphic-site .button, .graphic-site .button .icon, .text-link .icon,
  .graphic-site .card-photo img, .graphic-site .journal-image img,
  .graphic-site .gallery-photo img, .graphic-site .scene-glass,
  .discovery-link > span { transition: none !important; }
  .graphic-site .button::before, .experience-mega:not([hidden]), .mobile-nav:not([hidden]),
  .lightbox[open]::backdrop, .faq-list details[open] .faq-answer { animation:none !important; }
}
