@keyframes sheenSweep {
  0% {
    transform: translateX(-130%);
  }

  100% {
    transform: translateX(150%);
  }
}

@keyframes pulseAccent {
  0%,
  100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(180, 93, 38, 0.18);
  }

  60% {
    transform: scale(1.04);
    box-shadow: 0 0 0 12px rgba(180, 93, 38, 0);
  }
}

.btn-primary {
  position: relative;
  overflow: hidden;
}

.btn-primary::after {
  content: "";
  position: absolute;
  inset: -25% auto -25% -40%;
  width: 36%;
  background: linear-gradient(90deg, transparent, rgba(255, 244, 230, 0.7), transparent);
  transform: translateX(-140%);
}

.btn-primary:hover::after,
.btn-primary:focus-visible::after {
  animation: sheenSweep 900ms cubic-bezier(0.25, 1, 0.5, 1);
}

.signal-list li::before,
.capsule {
  animation: pulseAccent 3.2s ease-out infinite;
}

.reveal {
  transition:
    opacity 560ms cubic-bezier(0.16, 1, 0.3, 1),
    transform 560ms cubic-bezier(0.16, 1, 0.3, 1),
    filter 560ms cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal.is-visible {
  filter: blur(0);
}

.capability-card,
.metric-card,
.signal-card,
.detail-card,
.story-card,
.contact-card,
.form-card,
.page-sidecard,
.quote-strip,
.visual-panel,
.cta-panel {
  transition:
    transform 260ms cubic-bezier(0.25, 1, 0.5, 1),
    border-color 260ms cubic-bezier(0.25, 1, 0.5, 1),
    background-color 260ms cubic-bezier(0.25, 1, 0.5, 1),
    box-shadow 260ms cubic-bezier(0.25, 1, 0.5, 1);
  will-change: transform;
}

.capability-card:hover,
.metric-card:hover,
.signal-card:hover,
.detail-card:hover,
.story-card:hover,
.contact-card:hover,
.form-card:hover,
.page-sidecard:hover,
.quote-strip:hover,
.visual-panel:hover,
.cta-panel:hover {
  transform: translateY(-5px);
  border-color: rgba(180, 93, 38, 0.24);
  box-shadow: 0 28px 60px rgba(93, 59, 29, 0.18);
}

@media (prefers-reduced-motion: reduce) {
  .btn-primary:hover::after,
  .btn-primary:focus-visible::after,
  .signal-list li::before,
  .capsule {
    animation: none !important;
  }
}

@media (forced-colors: active) {
  .capability-card:hover,
  .metric-card:hover,
  .signal-card:hover,
  .detail-card:hover,
  .story-card:hover,
  .contact-card:hover,
  .form-card:hover,
  .page-sidecard:hover,
  .quote-strip:hover,
  .visual-panel:hover,
  .cta-panel:hover {
    outline: 2px solid ButtonText;
    transform: none;
  }
}
