/* Ride Blueprint globals — everything else lives on selectors + ACSS */
html { scroll-behavior: smooth; scroll-padding-block-start: 6rem; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { -webkit-font-smoothing: antialiased; }
::selection { background: var(--primary); color: var(--primary-ultra-light); }
body::after {
  content: "";
  position: fixed; inset: 0; z-index: 100; pointer-events: none;
  opacity: .028; mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
[data-theme="dark"] body::after { mix-blend-mode: overlay; opacity: .05; }
@media (prefers-color-scheme: dark) {
  html:not([data-theme]) body::after { mix-blend-mode: overlay; opacity: .05; }
}

/* ── Ride Blueprint motion keyframes (CSS-native; static drawings are the fallback) ── */
@keyframes rb-draw { from { stroke-dashoffset: 1px; } to { stroke-dashoffset: 0px; } }
@keyframes rb-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes rb-ride {
  0% { offset-distance: 0%; opacity: 1; }
  18% { offset-distance: 37%; }   /* dispatch run-in */
  52% { offset-distance: 66%; }   /* steady chain lift */
  62% { offset-distance: 72%; }   /* hang at the crest */
  74% { offset-distance: 100%; opacity: 1; } /* the drop */
  78% { offset-distance: 100%; opacity: 0; }
  100% { offset-distance: 0%; opacity: 0; }
}
@keyframes rb-follow { from { offset-distance: 0%; } to { offset-distance: 100%; } }
@keyframes rb-brake { from { offset-distance: 0%; } to { offset-distance: 100%; } }
@keyframes rb-stamp { from { opacity: 0; scale: 1.3; rotate: -1deg; } to { opacity: 1; scale: 1; rotate: -5deg; } }
@keyframes nav-solidify {
  to { background: color-mix(in srgb, var(--bg-ultra-light) 85%, transparent); border-block-end-color: color-mix(in srgb, var(--text-dark) 15%, transparent); backdrop-filter: blur(12px); }
}