/* Cinematic page transitions — quiet scene cut */

:root {
  --page-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --page-ease-in: cubic-bezier(0.16, 1, 0.3, 1);
  --page-out: 0.3s;
  --page-in: 0.5s;
  --page-blur-out: 5px;
  --page-blur-in: 4px;
  --page-scale-out: 0.994;
  --page-scale-in: 1.006;
}

.page-transition-root {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 100%;
  opacity: 0;
  transform: scale(var(--page-scale-in));
  filter: blur(var(--page-blur-in));
  transition:
    opacity var(--page-in) var(--page-ease-in),
    transform var(--page-in) var(--page-ease-in),
    filter var(--page-in) var(--page-ease-in);
  will-change: opacity, transform, filter;
}

body.is-page-ready .page-transition-root {
  opacity: 1;
  transform: scale(1);
  filter: blur(0);
}

body.is-page-leaving .page-transition-root {
  opacity: 0;
  transform: scale(var(--page-scale-out));
  filter: blur(var(--page-blur-out));
  transition:
    opacity var(--page-out) var(--page-ease-out),
    transform var(--page-out) var(--page-ease-out),
    filter var(--page-out) var(--page-ease-out);
}

body.home-page .page-transition-root {
  height: 100%;
  min-height: 100%;
  overflow: visible;
}

@media (prefers-reduced-motion: reduce) {
  .page-transition-root {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }
}

/* —— Site footer (all pages) —— */
.site-footer {
  position: fixed;
  right: clamp(1.25rem, 4vw, 3.5rem);
  bottom: max(clamp(0.65rem, 1.6vh, 1rem), env(safe-area-inset-bottom, 0px));
  left: auto;
  z-index: 220;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.5s var(--page-ease-in, cubic-bezier(0.22, 1, 0.36, 1)),
    visibility 0.5s;
}

body.is-footer-visible .site-footer {
  opacity: 1;
  visibility: visible;
}

.site-footer__text {
  margin: 0;
  font-family: "Manrope", system-ui, sans-serif;
  font-size: clamp(0.56rem, 0.92vw, 0.66rem);
  font-weight: 400;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: rgba(241, 234, 223, 0.36);
  text-shadow: 0 1px 10px rgba(0, 0, 0, 0.9);
}

@media (hover: none) and (pointer: coarse) and (min-width: 641px) {
  body.home-page.is-footer-visible .site-footer {
    top: var(--footer-tablet-top, auto);
    bottom: auto;
    right: max(var(--pad, 1.25rem), env(safe-area-inset-right, 0px));
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-footer {
    transition: none;
  }
}
