/* Public marketing pages only. Preserve each page's existing card design and copy. */
:where(.feature-card, .step-card, .systems-built-card, .capability-card, .outcome, .week-card, .contact-card, .grid-3 > .card, .compliance-item, .features-list .feature-item) {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

:where(.feature-card, .step-card, .systems-built-card, .capability-card, .outcome, .week-card, .contact-card, .grid-3 > .card, .compliance-item, .features-list .feature-item)::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  opacity: 0;
  transform: translateX(-120%);
  background: linear-gradient(105deg, transparent 28%, rgba(113, 218, 146, 0.035) 42%, rgba(196, 252, 213, 0.16) 50%, rgba(113, 218, 146, 0.035) 58%, transparent 72%);
}

@keyframes signalyn-card-sheen {
  0%, 11%, 100% { transform: translateX(-120%); opacity: 0; }
  20%, 28% { opacity: 0.7; }
  37% { transform: translateX(120%); opacity: 0; }
}
@keyframes signalyn-card-sheen-hover {
  0% { transform: translateX(-120%); opacity: 0; }
  18%, 78% { opacity: 1; }
  100% { transform: translateX(120%); opacity: 0; }
}
@keyframes signalyn-card-sheen-tap {
  0% { transform: translateX(-120%); opacity: 0; }
  18%, 75% { opacity: 1; }
  100% { transform: translateX(120%); opacity: 0; }
}

@media (prefers-reduced-motion: no-preference) {
  :where(.feature-card, .step-card, .systems-built-card, .capability-card, .outcome, .week-card, .contact-card, .grid-3 > .card, .compliance-item, .features-list .feature-item).motion-visible::after {
    animation: signalyn-card-sheen 9s cubic-bezier(.23, 1, .32, 1) infinite;
    animation-delay: var(--card-motion-delay, 0ms);
  }
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  :where(.feature-card, .outcome, .contact-card) {
    transition: border-color 220ms cubic-bezier(.23, 1, .32, 1), box-shadow 220ms cubic-bezier(.23, 1, .32, 1), transform 220ms cubic-bezier(.23, 1, .32, 1);
  }
  :where(.feature-card, .outcome, .contact-card):hover {
    border-color: rgba(61, 186, 106, 0.32);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.22), 0 0 22px rgba(61, 186, 106, 0.07);
  }
  :where(.outcome, .contact-card):hover { transform: translateY(-2px); }
  :where(.feature-card, .step-card, .systems-built-card, .capability-card, .outcome, .week-card, .contact-card, .grid-3 > .card, .compliance-item, .features-list .feature-item):hover::after {
    animation: signalyn-card-sheen-hover 850ms cubic-bezier(.23, 1, .32, 1) 1;
    animation-delay: 0ms;
  }
}

@media (hover: none) and (pointer: coarse) and (prefers-reduced-motion: no-preference) {
  :where(.feature-card, .step-card, .systems-built-card, .capability-card, .outcome, .week-card, .contact-card, .grid-3 > .card, .compliance-item, .features-list .feature-item).motion-tapped::after {
    background: linear-gradient(105deg, transparent 28%, rgba(113, 218, 146, 0.055) 42%, rgba(196, 252, 213, 0.24) 50%, rgba(113, 218, 146, 0.055) 58%, transparent 72%);
    animation: signalyn-card-sheen-tap 560ms linear 1;
    animation-delay: 0ms;
  }
}

/* Primary links and submit/advance buttons share the tap pulse, never the ambient card loop. */
:where(.nav-cta, .btn-primary, .teaser-cta, .btn-submit, .cta-btn, .brief-next, .brief-submit, .button:not(.secondary)) {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
:where(.nav-cta, .btn-primary, .teaser-cta, .btn-submit, .cta-btn, .brief-next, .brief-submit, .button:not(.secondary))::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  opacity: 0;
  transform: translateX(-120%);
  background: linear-gradient(105deg, transparent 28%, rgba(113, 218, 146, 0.055) 42%, rgba(196, 252, 213, 0.24) 50%, rgba(113, 218, 146, 0.055) 58%, transparent 72%);
}
@media (hover: none) and (pointer: coarse) and (prefers-reduced-motion: no-preference) {
  :where(.nav-cta, .btn-primary, .teaser-cta, .btn-submit, .cta-btn, .brief-next, .brief-submit, .button:not(.secondary)).cta-tapped::after {
    animation: signalyn-card-sheen-tap 560ms linear 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  :where(.feature-card, .step-card, .systems-built-card, .capability-card, .outcome, .week-card, .contact-card, .grid-3 > .card, .compliance-item, .features-list .feature-item)::after { display: none; }
  :where(.nav-cta, .btn-primary, .teaser-cta, .btn-submit, .cta-btn, .brief-next, .brief-submit, .button:not(.secondary))::after { display: none; }
}
