/* Motion complements the existing layout; nothing depends on it to remain visible. */
html.motion-enhanced .hero.is-ready .hero-copy,
html.motion-enhanced .hero.is-ready .hero-pole { animation: none; }
.hero .hero-fingerprint { background-image: none; }
.motion-fingerprint { position: absolute; width: 560px; height: auto; right: 20px; top: 45%; transform: translateY(-45%); translate: 0 calc(var(--pole-y, 0px) * -.55); pointer-events: none; }
.motion-enhanced .network-line { animation: none !important; }
.motion-enhanced .network-nodes .node { transform-box: fill-box; transform-origin: center; }
.motion-enhanced .map-house-group,
.motion-enhanced .map-condo-group,
.motion-enhanced .map-shop-group { transform-box: fill-box; transform-origin: center; }
.motion-enhanced .journey-steps > li { position: relative; }
.motion-enhanced .journey-steps > li::after { content: ''; position: absolute; top: -1px; left: 0; width: 100%; height: 2px; background: var(--blue); opacity: 0; transform: scaleX(0); transform-origin: left; pointer-events: none; }
.motion-enhanced .journey-steps > li.motion-step-visible::after { animation: motion-step-line .85s cubic-bezier(.16,1,.3,1) both; animation-delay: var(--step-delay,0ms); }
@keyframes motion-step-line { from { transform: scaleX(0); opacity: .2; } to { transform: scaleX(1); opacity: .7; } }
.motion-enhanced .feature-content.is-changing { animation: motion-feature-in .5s cubic-bezier(.16,1,.3,1); }
@keyframes motion-feature-in { from { opacity: .25; translate: 14px 0; } to { opacity: 1; translate: 0 0; } }
.motion-toggle { appearance: none; border: 1px solid var(--line); border-radius: 4px; background: none; color: inherit; font: inherit; line-height: 1.4; min-height: 36px; padding: 8px 12px; cursor: pointer; }
.motion-toggle[aria-pressed=true] { color: var(--blue); border-color: currentColor; }
.motion-toggle:focus-visible { outline: 2px solid var(--blue); outline-offset: 4px; }
.motion-toggle:disabled { cursor: default; opacity: .7; }
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .resource-item { transition: translate .25s cubic-bezier(.16,1,.3,1); }
  .resource-item:hover { translate: 0 -4px; }
  .button .icon, .text-link .icon { transition: translate .25s cubic-bezier(.16,1,.3,1); }
  .button:hover .icon, .text-link:hover .icon { translate: 3px -3px; }
}
@media (max-width:960px) { .motion-fingerprint { width: 480px; right: -10px; top: 50%; transform: translateY(-50%); } }
@media (max-width:640px) { .motion-fingerprint { width: 390px; right: calc(50% - 225px); top: auto; bottom: 80px; transform: none; translate: none; } }
@media (max-width:360px) { .motion-fingerprint { width: 330px; right: calc(50% - 195px); } }
html[data-motion=reduced] { scroll-behavior: auto !important; }
html[data-motion=reduced] *, html[data-motion=reduced] *::before, html[data-motion=reduced] *::after { animation: none !important; transition: none !important; }
html[data-motion=reduced] .hero-pole { transform: translate(-48%,0) !important; translate: none !important; }
html[data-motion=reduced] .motion-fingerprint,
html[data-motion=reduced] .resource-item:hover,
html[data-motion=reduced] .button .icon,
html[data-motion=reduced] .text-link .icon { translate: none !important; }
html[data-motion=reduced] .journey-steps > li::after { display: none; }
@media (prefers-reduced-motion:reduce) {
  .motion-fingerprint { translate: none; }
  .journey-steps > li::after { display: none; }
}
