/* Lightweight CSS motion — respect prefers-reduced-motion via base.css */

.reveal {
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity var(--duration-slow) var(--ease-out),
    transform var(--duration-slow) var(--ease-out);
  will-change: opacity, transform;
}

.reveal.is-visible {
  opacity: 1;
  transform: none;
  will-change: auto;
}

.reveal-left {
  opacity: 0;
  transform: translateX(-20px);
  transition:
    opacity var(--duration-slow) var(--ease-out),
    transform var(--duration-slow) var(--ease-out);
}

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

.reveal-right {
  opacity: 0;
  transform: translateX(20px);
  transition:
    opacity var(--duration-slow) var(--ease-out),
    transform var(--duration-slow) var(--ease-out);
}

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

.reveal-scale {
  opacity: 0;
  transform: scale(0.97);
  transition:
    opacity var(--duration-slow) var(--ease-out),
    transform var(--duration-slow) var(--ease-out);
}

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

/* Stagger children */
.reveal-stagger > .reveal,
.reveal-stagger > .reveal-left,
.reveal-stagger > .reveal-right,
.reveal-stagger > .reveal-scale {
  transition-delay: calc(var(--i, 0) * 55ms);
}

.reveal-stagger > *:nth-child(1) { --i: 0; }
.reveal-stagger > *:nth-child(2) { --i: 1; }
.reveal-stagger > *:nth-child(3) { --i: 2; }
.reveal-stagger > *:nth-child(4) { --i: 3; }
.reveal-stagger > *:nth-child(5) { --i: 4; }
.reveal-stagger > *:nth-child(6) { --i: 5; }
.reveal-stagger > *:nth-child(7) { --i: 6; }
.reveal-stagger > *:nth-child(8) { --i: 7; }
.reveal-stagger > *:nth-child(9) { --i: 8; }
.reveal-stagger > *:nth-child(10) { --i: 9; }
.reveal-stagger > *:nth-child(11) { --i: 10; }
.reveal-stagger > *:nth-child(12) { --i: 11; }

/* Card lift utility (for existing cards without rewriting markup) */
.lift,
.industry-item,
.outcome-item,
.help-card,
.trust-point,
.trust-item,
.phil-block,
.engage-card,
.cap-item,
.tech-card,
.process-step {
  transition:
    transform var(--duration) var(--ease),
    box-shadow var(--duration) var(--ease),
    border-color var(--duration) var(--ease),
    background var(--duration) var(--ease);
}

.value-card {
  transition: background var(--duration) var(--ease);
}

.value-card:hover {
  background: #fbfcfb;
}

.industry-item:hover,
.outcome-item:hover,
.help-card:hover,
.trust-point:hover,
.trust-item:hover,
.phil-block:hover,
.engage-card:hover,
.cap-item:hover,
.tech-card:hover,
.process-step:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}

/* Soft enter for page main */
@keyframes page-in {
  from {
    opacity: 0.96;
  }
  to {
    opacity: 1;
  }
}

main#main {
  animation: page-in 0.35s var(--ease-out);
}

@media (prefers-reduced-motion: reduce) {
  .reveal,
  .reveal-left,
  .reveal-right,
  .reveal-scale {
    opacity: 1;
    transform: none;
    transition: none;
  }

  main#main {
    animation: none;
  }

  .industry-item:hover,
  .outcome-item:hover,
  .help-card:hover,
  .trust-point:hover,
  .trust-item:hover,
  .phil-block:hover,
  .engage-card:hover,
  .cap-item:hover,
  .tech-card:hover,
  .process-step:hover {
    transform: none;
  }
}
