/* Progressive motion: content and business copy remain in the source HTML. */
:root { --motion-settle: cubic-bezier(.23, 1, .32, 1); }
.reading-progress { position: absolute; inset: auto 0 -1px; height: 2px; pointer-events: none; overflow: hidden; }
.reading-progress-fill { display: block; width: 100%; height: 100%; background: var(--accent, #83ada6); transform: scaleX(0); transform-origin: left center; }
.desktop-nav a[aria-current="location"] { color: var(--accent, #83ada6); }
.desktop-nav a[aria-current="location"]::after { transform: scaleX(1); }
.menu-dialog nav a[aria-current="location"] { color: var(--accent, #83ada6); }
.menu-dialog nav a[aria-current="location"] small { color: var(--accent, #83ada6); }
.is-current-section > .section-heading .section-label > span { color: var(--action, #e78470); }
.light-section.is-current-section > .section-heading .section-label > span { color: #456f6a; }
.motion-depth-surface { transform-origin: center; }
html[data-motion="on"] .motion-depth-surface { transition: transform 180ms var(--motion-settle); }
html[data-motion="on"] .reveal.is-visible { transition: opacity 320ms var(--ease), transform 320ms var(--ease); }

@media (hover: hover) and (pointer: fine) {
  html[data-motion="on"][data-motion-input="pointer"] :is(.button, .header-cta, .video-control, .route-step-button) { transition: transform 140ms var(--motion-settle), opacity 140ms var(--motion-settle); }
  html[data-motion="on"][data-motion-input="pointer"] :is(.button, .header-cta, .video-control, .route-step-button):not(:disabled):hover { transform: translateY(-2px); }
  html[data-motion="on"][data-motion-input="pointer"] :is(.button, .header-cta, .video-control, .route-step-button):not(:disabled):active { transform: translateY(0) scale(.985); }
  .route-step-button:hover { border-color: var(--accent, #83ada6); }
  html[data-motion="on"][data-motion-input="pointer"] .scroll-link span { display: inline-block; transition: transform 140ms var(--motion-settle); }
  html[data-motion="on"][data-motion-input="pointer"] .scroll-link:hover span { transform: translateY(3px); }
}

/* Instant functional states remain available when motion is not wanted. */
html[data-motion="off"], html[data-motion-input="keyboard"] { scroll-behavior: auto !important; }
html[data-motion="off"] *, html[data-motion="off"] *::before, html[data-motion="off"] *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
html[data-motion="off"] .motion-depth-surface { transform: none !important; }
html[data-motion="off"] .route-detail, html[data-motion="off"] .route-detail.is-changing { opacity: 1; transform: none; }
html[data-motion-input="keyboard"] :is(.motion-depth-surface, .route-detail, .route-segment, .route-step-button, .button, .header-cta, .video-control, .text-link span), html[data-motion-input="keyboard"] .route-step-button::before { transition: none !important; }
html[data-motion="off"] .text-link:hover span, html[data-motion-input="keyboard"] .text-link:hover span { transform: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .motion-depth-surface { transform: none !important; }
  .route-detail, .route-detail.is-changing { opacity: 1; transform: none; }
}
@media print { .route-explorer, .reading-progress, #motion-toggle { display: none !important; } }
