/* Site-wide living photos + polish */

:root {
  --live-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* Soft entrance */
.reveal {
  opacity: 0;
  transform: translateY(22px);
  transition:
    opacity 0.7s var(--live-ease),
    transform 0.7s var(--live-ease);
  will-change: opacity, transform;
}

.reveal.is-in {
  opacity: 1;
  transform: none;
}

.reveal-delay-1 { transition-delay: 0.08s; }
.reveal-delay-2 { transition-delay: 0.16s; }
.reveal-delay-3 { transition-delay: 0.24s; }

/* Living photo base — used where we opt in */
.live-shot {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.live-shot > img,
.live-shot-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.06);
  filter: saturate(0.94) contrast(0.97) brightness(1.02) sepia(0.05);
  transition: transform 0.8s var(--live-ease), filter 0.45s ease;
  will-change: transform;
}

/* Slow breathing on page banners (home hero already has hero-live) */
@keyframes live-float {
  from { transform: translate3d(0, 0, 0) scale(1.04); }
  to { transform: translate3d(-1.5%, -1%, 0) scale(1.1); }
}

.page-hero-bg {
  transform: scale(1.08);
  filter: saturate(0.92) contrast(0.96) brightness(0.95) sepia(0.06);
  transition: transform 0.9s var(--live-ease), filter 0.5s ease;
  animation: live-float 24s ease-in-out infinite alternate;
}

.page-hero:hover .page-hero-bg {
  filter: saturate(1) contrast(1) brightness(1) sepia(0.03);
}

.lead-bg {
  transform: scale(1.06);
  filter: saturate(0.9) contrast(0.95) brightness(0.85) sepia(0.08);
  animation: live-float 22s ease-in-out infinite alternate;
}

/* Portfolio & section photos */
.folio-card figure,
.project-card figure,
.svc-row > img,
.page-about .story > img,
.page-about .mosaic img,
.contact-map {
  position: relative;
  overflow: hidden;
}

.folio-card figure > img,
.project-card figure > img,
.svc-row > img,
.page-about .story > img,
.page-about .mosaic img {
  transform: scale(1.05);
  filter: saturate(0.93) contrast(0.97) brightness(1.02) sepia(0.05);
  transition: transform 0.75s var(--live-ease), filter 0.4s ease;
}

.folio-card:hover figure > img,
.project-card:hover figure > img,
.svc-row:hover > img,
.page-about .story:hover > img,
.page-about .mosaic img:hover {
  transform: scale(1.11);
  filter: saturate(1.02) contrast(1) brightness(1.04) sepia(0.02);
}

/* Soft shine sweep on cards */
.folio-card figure::after,
.project-card figure::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(
    115deg,
    transparent 35%,
    rgba(255, 255, 255, 0.18) 48%,
    transparent 62%
  );
  transform: translateX(-120%);
  transition: transform 0.85s var(--live-ease);
}

.folio-card:hover figure::after,
.project-card:hover figure::after {
  transform: translateX(120%);
}

/* Features / reviews lift */
.feature,
.review,
.service-item,
.stat,
.value,
.rev-score {
  transition: transform 0.35s var(--live-ease), box-shadow 0.35s ease, border-color 0.35s ease;
}

.feature:hover,
.review:hover,
.service-item:hover,
.stat:hover,
.value:hover,
.rev-score:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.08);
}

/* Buttons */
.btn {
  position: relative;
  overflow: hidden;
}

.btn-accent {
  box-shadow: 0 8px 22px rgba(29, 78, 216, 0.28);
}

.btn-accent:hover {
  box-shadow: 0 12px 28px rgba(29, 78, 216, 0.38);
}

.btn-ghost:hover {
  border-color: color-mix(in srgb, var(--btn) 45%, var(--line));
  color: var(--btn);
}

/* Header polish */
.site-header {
  transition: box-shadow 0.3s ease, background 0.3s ease;
}

.site-header.is-scrolled {
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06);
}

/* Lightbox more cinematic */
.lightbox {
  animation: lb-in 0.28s var(--live-ease);
}

.lightbox-img {
  animation: lb-img 0.4s var(--live-ease);
  filter: saturate(0.98) contrast(1.02);
}

@keyframes lb-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes lb-img {
  from { opacity: 0; transform: scale(0.96); }
  to { opacity: 1; transform: scale(1); }
}

/* Stagger folio grid */
.folio-grid .folio-card {
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity 0.55s var(--live-ease),
    transform 0.55s var(--live-ease);
}

.folio-grid.is-ready .folio-card {
  opacity: 1;
  transform: none;
}

.folio-grid.is-ready .folio-card:nth-child(3n + 2) { transition-delay: 0.06s; }
.folio-grid.is-ready .folio-card:nth-child(3n + 3) { transition-delay: 0.12s; }

@media (prefers-reduced-motion: reduce) {
  .reveal,
  .folio-grid .folio-card,
  .hero-media img,
  .page-hero-bg,
  .lead-bg,
  .btn {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
    translate: none !important;
  }
}
