/**
 * Projects page (project-lobby) — Framer-style scroll reveals in + out.
 * Pairs with js/projects-page-reveal.js (body.projects-page only).
 */

html.page-projects-reveal-init {
  --framer-ease: var(--ease-smooth-opacity, cubic-bezier(0.33, 1, 0.68, 1));
  --framer-ease-soft: var(--ease-smooth-transform, cubic-bezier(0.22, 1, 0.42, 1));
  --framer-dur-in: 0.98s;
  --framer-dur-out: 0.78s;
}

html.page-projects-reveal-init .framer-reveal-prep:not(.framer-reveal-visible) {
  opacity: 0;
  transform: translate3d(0, 1.5rem, 0);
  filter: none;
  will-change: opacity, transform;
  transition:
    opacity var(--framer-dur-out) var(--framer-ease),
    transform calc(var(--framer-dur-out) + 0.08s) var(--framer-ease-soft);
  transition-delay: 0ms;
}

html.page-projects-reveal-init .framer-reveal-prep.framer-reveal-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  will-change: auto;
  transition:
    opacity var(--framer-dur-in) var(--framer-ease),
    transform calc(var(--framer-dur-in) + 0.1s) var(--framer-ease-soft);
  transition-delay: var(--framer-d, 0ms);
}

/* Project cards: shorter transform so hover lift stays snappy; !important beats base .project-card */
html.page-projects-reveal-init .project-card.framer-reveal-prep:not(.framer-reveal-visible) {
  opacity: 0 !important;
  transform: translate3d(0, 1.75rem, 0) !important;
  pointer-events: none;
  transition:
    opacity var(--framer-dur-out) var(--framer-ease) !important,
    transform 0.48s var(--framer-ease-soft) !important;
  transition-delay: 0ms !important;
}

html.page-projects-reveal-init .project-card.framer-reveal-prep.framer-reveal-visible {
  pointer-events: auto;
  opacity: 1 !important;
  transform: translate3d(0, 0, 0) !important;
  transition:
    opacity var(--framer-dur-in) var(--framer-ease) !important,
    transform 0.48s var(--framer-ease-soft) !important,
    box-shadow 0.55s var(--framer-ease-soft) !important;
  transition-delay: var(--framer-d, 0ms) !important;
}

html.page-projects-reveal-init .project-card.framer-reveal-visible:hover {
  transform: translate3d(0, -3px, 0) !important;
  transition:
    opacity var(--framer-dur-in) var(--framer-ease) !important,
    transform 0.35s cubic-bezier(0.22, 1, 0.36, 1) !important;
}

html.page-projects-reveal-init .project-card.framer-reveal-visible:focus-visible {
  transform: translate3d(0, -3px, 0) !important;
  transition:
    opacity var(--framer-dur-in) var(--framer-ease) !important,
    transform 0.35s cubic-bezier(0.22, 1, 0.36, 1) !important;
}

/* Archive table: rows + header blocks */
html.page-projects-reveal-init .projects-archive .framer-reveal-prep:not(.framer-reveal-visible) {
  opacity: 0 !important;
  transform: translate3d(0, 1.35rem, 0) !important;
  transition:
    opacity var(--framer-dur-out) var(--framer-ease) !important,
    transform calc(var(--framer-dur-out) + 0.06s) var(--framer-ease-soft) !important;
  transition-delay: 0ms !important;
}

html.page-projects-reveal-init .projects-archive__row.framer-reveal-prep:not(.framer-reveal-visible) {
  pointer-events: none;
}

html.page-projects-reveal-init .projects-archive__row.framer-reveal-prep.framer-reveal-visible {
  pointer-events: auto;
}

html.page-projects-reveal-init .projects-archive .framer-reveal-prep.framer-reveal-visible {
  opacity: 1 !important;
  transform: translate3d(0, 0, 0) !important;
  transition:
    opacity var(--framer-dur-in) var(--framer-ease) !important,
    transform calc(var(--framer-dur-in) + 0.08s) var(--framer-ease-soft) !important;
  transition-delay: var(--framer-d, 0ms) !important;
}

@media (prefers-reduced-motion: reduce) {
  html.page-projects-reveal-init .framer-reveal-prep,
  html.page-projects-reveal-init .project-card.framer-reveal-prep:not(.framer-reveal-visible),
  html.page-projects-reveal-init .project-card.framer-reveal-prep.framer-reveal-visible,
  html.page-projects-reveal-init .projects-archive .framer-reveal-prep {
    opacity: 1 !important;
    transform: none !important;
    pointer-events: auto !important;
    transition: none !important;
    will-change: auto !important;
  }
}
