/* Quiet Studio: motion
 * Scroll-reveal classes triggered by assets/js/motion.js using IntersectionObserver.
 * Mass-applied via [data-qs-reveal] attribute on any block.
 */

[data-qs-reveal] {
  opacity: 0;
  transform: translateY(24px);
  filter: blur(4px);
  transition:
    opacity var(--qs-dur-reveal) var(--qs-ease-drawer),
    transform var(--qs-dur-reveal) var(--qs-ease-drawer),
    filter var(--qs-dur-reveal) var(--qs-ease-drawer);
  will-change: opacity, transform, filter;
}

[data-qs-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}

/* Staggered children: apply [data-qs-reveal-stagger] on a parent.
   Each direct child fades up with a 90ms cascade. */
[data-qs-reveal-stagger] > * {
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity var(--qs-dur-reveal) var(--qs-ease-drawer),
    transform var(--qs-dur-reveal) var(--qs-ease-drawer);
  will-change: opacity, transform;
}

[data-qs-reveal-stagger].is-visible > * {
  opacity: 1;
  transform: translateY(0);
}

[data-qs-reveal-stagger].is-visible > *:nth-child(1) { transition-delay: 0ms; }
[data-qs-reveal-stagger].is-visible > *:nth-child(2) { transition-delay: 90ms; }
[data-qs-reveal-stagger].is-visible > *:nth-child(3) { transition-delay: 180ms; }
[data-qs-reveal-stagger].is-visible > *:nth-child(4) { transition-delay: 270ms; }
[data-qs-reveal-stagger].is-visible > *:nth-child(5) { transition-delay: 360ms; }
[data-qs-reveal-stagger].is-visible > *:nth-child(6) { transition-delay: 450ms; }
[data-qs-reveal-stagger].is-visible > *:nth-child(7) { transition-delay: 540ms; }
[data-qs-reveal-stagger].is-visible > *:nth-child(8) { transition-delay: 630ms; }

/* Reduce motion users: skip all reveal animation, show content immediately */
@media (prefers-reduced-motion: reduce) {
  [data-qs-reveal],
  [data-qs-reveal-stagger] > * {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }
}

/* AI Adoption Advisory micro-interaction polish. */
.aaa-reveal {
  will-change: opacity, transform;
}

.aaa-button,
.aaa-service-tile,
.aaa-card,
.aaa-outcome,
.aaa-process-step,
.aaa-proof-item,
.aaa-dashboard {
  backface-visibility: hidden;
}

.aaa-button:hover {
  transform: translateY(-1px);
}

.aaa-button:active {
  transform: scale(0.98);
}

.aaa-dashboard {
  transition: transform 500ms cubic-bezier(0.32, 0.72, 0, 1), box-shadow 500ms cubic-bezier(0.32, 0.72, 0, 1);
}

.aaa-dashboard:hover {
  transform: translateY(-4px) rotate(-0.15deg);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.14), 0 40px 92px rgba(0,0,0,0.24);
}

@media (prefers-reduced-motion: reduce) {
  .aaa-dashboard:hover,
  .aaa-button:hover,
  .aaa-service-tile:hover,
  .aaa-card:hover {
    transform: none;
  }
}

/* 0.4.3: subtle editorial and control-layer polish. */
.aaa-post-card,
.aaa-control-visual .aaa-dashboard,
.aaa-dashboard-core::after {
  will-change: transform, opacity;
}

.aaa-post-card:hover .aaa-post-title a {
  color: #304638 !important;
}

@media (prefers-reduced-motion: reduce) {
  .aaa-post-card:hover .aaa-post-title a {
    color: var(--aaa-ink) !important;
  }
}
