/* The cover arrives like a theatre poster; the railway path draws once. */
:root { --image-ring: #b87a40; }

@media (prefers-reduced-motion: no-preference) {
  .br-motion-ready .hero-copy.is-visible {
    animation: br-copy-arrive 800ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
  }

  .br-motion-ready .cover-art.is-visible {
    transform-origin: center bottom;
    animation: br-cover-arrive 1200ms cubic-bezier(0.16, 1, 0.3, 1) both;
  }

  .br-motion-ready .cover-art.is-visible::before {
    animation: br-frame-open 1500ms cubic-bezier(0.16, 1, 0.3, 1) both;
  }

  .br-motion-ready .featured-shot.is-visible .image-link,
  .br-motion-ready .screen.is-visible .image-link {
    transform-origin: center bottom;
    animation: br-scene-arrive 1050ms cubic-bezier(0.16, 1, 0.3, 1) both;
  }

  .br-motion-ready .release-path.is-visible::after {
    transform-origin: top;
    animation: br-rail-draw 1400ms cubic-bezier(0.2, 0.65, 0.3, 1) both;
  }

  .text-link span {
    transition: transform 200ms ease;
  }

  .text-link:hover span {
    transform: translateY(4px);
  }
}

@keyframes br-copy-arrive {
  from { opacity: 0.65; transform: translateY(14px); }
  to { opacity: 1; transform: none; }
}

@keyframes br-cover-arrive {
  0% { opacity: 0.55; transform: translateY(42px) rotate(-3deg) scale(0.94); }
  75% { opacity: 1; transform: translateY(-4px) rotate(1.5deg) scale(1); }
  100% { opacity: 1; transform: rotate(1deg); }
}

@keyframes br-frame-open {
  from { opacity: 0.3; transform: translate(-12px, -12px) scale(0.93); }
  to { opacity: 1; transform: none; }
}

@keyframes br-scene-arrive {
  from { opacity: 0.65; transform: translateY(28px) scale(0.97); }
  to { opacity: 1; transform: none; }
}

@keyframes br-rail-draw {
  from { transform: scaleY(0); }
  to { transform: scaleY(1); }
}

/* The home control responds consistently on every project page. */
@media (prefers-reduced-motion: no-preference) {
  .home-button {
    transition: background-color 180ms ease, border-color 180ms ease, transform 180ms ease;
  }

  .home-button span[aria-hidden] {
    transition: transform 220ms cubic-bezier(0.2, 0.8, 0.2, 1);
  }

  .image-link {
    transition: box-shadow 180ms ease;
  }
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .home-button:hover {
    transform: translateY(-2px);
  }

  .home-button:hover span[aria-hidden] {
    transform: translateX(-4px);
  }

  .image-link:hover {
    box-shadow: 0 0 0 3px var(--image-ring);
  }
}
