/* Motion is independent of the content and can be disabled globally. */
a, button { transition: background .22s ease, color .22s ease, box-shadow .3s ease; }
.button { transition: background .22s ease, transform .45s var(--ease-out), box-shadow .45s ease; }
.button:hover { transform: translateY(-2px); box-shadow: 0 9px 24px #005CFF1B; }
.text-link > span[aria-hidden], .work-bottom a span, .service-bottom .circle-button { transition: transform .4s var(--ease-out); }
.text-link:hover > span[aria-hidden], .work-bottom a:hover span { transform: translate(3px,-2px); }
.service-bottom .circle-button:hover { transform: rotate(8deg); }
.work-desktop, .work-mobile { transition: transform .85s var(--ease-out), box-shadow .85s var(--ease-out); }
@media (hover:hover) and (pointer:fine) {
  .work-visual:hover .work-desktop { transform: perspective(1000px) rotateY(0deg) rotateX(0deg) translateY(-5px); box-shadow: 0 35px 55px -20px #0006; }
  .work-visual:hover .work-mobile { transform: translateY(-10px) rotate(0deg); }
  .case-image img { transition: transform .75s var(--ease-out); }
  .case-image:hover img { transform: translateY(-5px) scale(1.015); }
  .price-card { transition: transform .5s var(--ease-out), box-shadow .5s ease; }
  .price-card:hover { transform: translateY(-5px); box-shadow: 0 18px 40px #16365a0A; }
}
.carousel-progress span { transition: transform .7s var(--ease-out); }
.method-number { transition: color .5s ease; }
.workflow div { transition: transform .6s var(--ease-out), border-color .5s, box-shadow .6s; }
.workflow div.workflow-active { transform: translateX(6px); }
.site-header { transition: box-shadow .35s ease; }
.motion-enabled [data-reveal] { transition: opacity .85s var(--ease-out), transform .95s var(--ease-out); transition-delay: var(--reveal-delay,0ms); }
.motion-enabled [data-reveal]:not(.is-visible):not(:focus-within) { opacity: 0; transform: translateY(25px); }
.motion-enabled .hero-location, .motion-enabled .hero-title, .motion-enabled .intro, .motion-enabled .hero .actions { animation: hero-in .95s var(--ease-out) both; }
.motion-enabled .hero-title { animation-delay: .08s; }
.motion-enabled .intro { animation-delay: .17s; }
.motion-enabled .hero .actions { animation-delay: .25s; }
dialog[open] { animation: dialog-in .35s var(--ease-out); }
details[open] > div, .faq details[open] p { animation: answer-in .35s var(--ease-out); }
@keyframes hero-in { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes dialog-in { from { opacity: 0; transform: translateY(18px) scale(.985); } to { opacity: 1; transform: none; } }
@keyframes answer-in { from { opacity: .2; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
html.motion-reduced { scroll-behavior: auto; }
.motion-reduced *, .motion-reduced *::before, .motion-reduced *::after { animation: none !important; transition: none !important; }
.motion-reduced [data-reveal] { opacity: 1 !important; transform: none !important; }
.motion-reduced .work-desktop, .motion-reduced .work-mobile, .motion-reduced .button:hover, .motion-reduced .price-card:hover { transform: none; }
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  [data-reveal] { opacity: 1 !important; transform: none !important; }
  .work-desktop, .work-mobile { transform: none; }
}
.carousel-track.is-dragging { scroll-snap-type: none; cursor: grabbing; user-select: none; }
.carousel-track.is-dragging * { cursor: grabbing; }
