/* Shared disclosure and motion system for RAYASOFT and its product pages. */
.motion-site .projects-menu__trigger { display: inline-flex; align-items: center; gap: 6px; }
.motion-site .projects-chevron { display: block; flex: 0 0 14px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: transform 220ms ease; }
.motion-site .projects-menu__trigger[aria-expanded="true"] .projects-chevron { transform: rotate(180deg); }
.motion-site .projects-menu .projects-menu__panel { opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity 200ms ease, transform 200ms ease, visibility 200ms ease; }
.motion-site .projects-menu.is-open .projects-menu__panel { opacity: 1; visibility: visible; transform: none; }
.motion-site .projects-menu__panel[inert] { pointer-events: none; }
.motion-site .btn { transition: background-color 200ms ease, border-color 200ms ease, box-shadow 200ms ease, transform 200ms ease; }
.motion-site .btn > span[aria-hidden], .motion-site .footer-contact > span { transition: transform 200ms ease; }
.motion-site .capability-index li h3, .motion-site .capability-number { transition: translate 220ms ease, opacity 220ms ease; }
.motion-site .capability-number { opacity: .78; }
.motion-site .workflow-track li::before { transform-origin: right center; transition: scale 600ms ease; }
.motion-site .faq-a { overflow: hidden; }
.motion-site .faq-ico { position: relative; width: 22px; height: 26px; font-size: 0; transition: transform 220ms ease; }
.motion-site .faq-ico::before, .motion-site .faq-ico::after { content: ""; position: absolute; width: 12px; height: 1.5px; background: currentColor; left: 5px; top: 12px; }
.motion-site .faq-ico::after { transform: rotate(90deg); transition: transform 220ms ease; }
.motion-site .faq-q[aria-expanded="true"] .faq-ico { transform: rotate(180deg); }
.motion-site .faq-q[aria-expanded="true"] .faq-ico::after { transform: rotate(0); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .motion-site .btn:hover { transform: translateY(-2px); }
  .motion-site .btn:hover > span[aria-hidden], .motion-site .footer-contact:hover > span { transform: translateX(-4px); }
  .motion-site .capability-index li:hover h3 { translate: -2px 0; }
  .motion-site .capability-index li:hover .capability-number { opacity: 1; translate: -2px 0; }
}

@media (max-width: 860px) {
  .motion-site .projects-menu__trigger { display: flex; min-height: 48px; width: 100%; justify-content: flex-start; }
  .motion-site .projects-menu .projects-menu__panel { max-height: 0; overflow: hidden; padding-block: 0; transition: max-height 220ms ease, opacity 200ms ease, transform 200ms ease, visibility 220ms ease; }
  .motion-site .projects-menu.is-open .projects-menu__panel { max-height: 240px; }
  .motion-site .projects-menu__panel a { min-height: 48px; }
}
@media (prefers-reduced-motion: reduce) {
  .motion-site .projects-chevron, .motion-site .faq-ico, .motion-site .faq-ico::after, .motion-site .projects-menu .projects-menu__panel { transition: none; }
  .motion-site .workflow-track li::before { scale: 1; transition: none; }
}


/* Five entrance variants. Individual translate/scale preserve existing hover transforms. */
.motion-site { overflow-x: clip; }
.motion-site .motion-group {
  --reveal-x: 0px; --reveal-y: 32px; --reveal-scale: 1;
  transition: opacity 800ms cubic-bezier(.22,.7,.2,1), translate 800ms cubic-bezier(.22,.7,.2,1), scale 800ms cubic-bezier(.22,.7,.2,1), transform 220ms ease, border-color 220ms ease, box-shadow 220ms ease;
  transition-delay: var(--reveal-delay,0ms), var(--reveal-delay,0ms), var(--reveal-delay,0ms), 0ms, 0ms, 0ms;
}
.motion-site .reveal-right { --reveal-x: 38px; --reveal-y: 0px; }
.motion-site .reveal-left { --reveal-x: -38px; --reveal-y: 0px; }
.motion-site .reveal-scale { --reveal-y: 0px; --reveal-scale: .965; }
.motion-site .reveal-fade { --reveal-y: 0px; }
.motion-enabled .motion-group:not(.is-revealed) { opacity: 0; translate: var(--reveal-x) var(--reveal-y); scale: var(--reveal-scale); }
.motion-site .motion-group.is-revealed, .motion-site .motion-group:focus-within { opacity: 1; translate: 0 0; scale: 1; }
.motion-site .motion-group:focus-within { transition-delay: 0ms; }
.motion-site .workflow-track li::before { transition: scale 850ms ease, border-color 850ms ease; }
.motion-enabled .workflow-track li:not(.is-step-visible)::before { scale: 0 1; }
.motion-site .workflow-track li.is-step-visible::before { border-color: var(--brand); scale: 1; }
.motion-site .workflow-number { transition: opacity 650ms ease, translate 650ms ease; transition-delay: 80ms; }
.motion-enabled .workflow-track li:not(.is-step-visible) .workflow-number { opacity: .2; translate: 0 10px; }
.motion-site .why-list li { position: relative; }
.motion-site .why-list li::after, .motion-site .company-statement::after {
  content: ""; position: absolute; inset-inline-start: 0; top: 0; width: 42px; height: 1px; background: var(--brand);
  transform-origin: right; scale: 0 1; transition: scale 850ms ease 100ms;
}
.motion-site .why-list li.is-revealed::after, .motion-site .company-statement.is-revealed::after { scale: 1; }
.motion-site .company-statement { position: relative; }
.motion-site .company-statement::after { top: auto; bottom: -12px; }
.motion-site .gallery-card img { transition: transform 350ms ease; }
.motion-site .gallery-caption__title { transition: color 220ms ease; }
.motion-site .btn:active { transform: translateY(0); box-shadow: none; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .motion-site .capability-index li:hover h3, .motion-site .capability-index li:hover .capability-number { translate: -3px 0; }
  .motion-site .gallery-card:hover img { transform: scale(1.012); }
  .motion-site .gallery-card:hover .gallery-caption__title { color: var(--product-deep); }
}
@media (min-width: 861px) and (prefers-reduced-motion: no-preference) {
  .motion-site .hero-visual, .motion-site .project-hero__visual { transform: perspective(900px) translate(var(--hero-x,0px),var(--hero-y,0px)) rotateY(var(--hero-ry,0deg)); }
  .motion-site .hero-visual img, .motion-site .project-hero__visual-frame img { animation: visual-breathe 13s ease-in-out infinite paused; }
  .motion-site .is-motion-running .hero-visual img, .motion-site .is-motion-running .project-hero__visual-frame img { animation-play-state: running; }
}
@keyframes visual-breathe { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
@media (max-width: 860px) {
  .motion-site .motion-group { --reveal-x: 0px; --reveal-y: 20px; transition-duration: 650ms,650ms,650ms,200ms,200ms,200ms; transition-delay: var(--mobile-delay,0ms),var(--mobile-delay,0ms),var(--mobile-delay,0ms),0ms,0ms,0ms; }
  .motion-site .reveal-fade, .motion-site .reveal-scale { --reveal-y: 0px; }
  .motion-site .workflow-track li::before { transform-origin: center top; }
  .motion-enabled .workflow-track li:not(.is-step-visible)::before { scale: 1 0; }
}
@media (prefers-reduced-motion: reduce) {
  .motion-site .motion-group { opacity: 1 !important; translate: none !important; scale: 1 !important; transition: none; }
  .motion-site .hero-visual, .motion-site .project-hero__visual { transform: none; }
  .motion-site .hero-visual img, .motion-site .project-hero__visual-frame img { animation: none; transform: none; }
  .motion-site .workflow-number { opacity: 1 !important; translate: none !important; }
  .motion-site .workflow-track li::before, .motion-site .why-list li::after, .motion-site .company-statement::after { scale: 1 !important; transition: none; }
}
