/* BibCycle Scroll System v2.1 — shared, opt-in scroll effects */
/* Pages that override this offset must override both the base and mobile values. */
:root {
  --scroll-offset: 88px;
  --nav-logo-size: 22px;
  --nav-link-size: 14px;
  --nav-padding-x: 60px;
  --nav-padding-y: 20px;
}

@media (max-width: 960px) {
  :root { --scroll-offset: 72px; }
}

@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}

section[id], [id][data-scroll-target] {
  scroll-margin-top: var(--scroll-offset);
}

html.anim-off .reveal { transition: none; }

[data-scroll-progress] .bibcycle-scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  z-index: 200;
  background: var(--amber, #FFD27F);
  transform: scaleX(var(--scroll-progress, 0));
  transform-origin: left;
  pointer-events: none;
  opacity: 0;
  transition: opacity 200ms ease;
}

[data-scroll-nav][data-scroll-nav-mode="fixed"] {
  transition: var(--scroll-nav-transition, transform 240ms cubic-bezier(0.4, 0, 0.2, 1));
}

[data-scroll-nav][data-scroll-nav-mode="fixed"] [data-scroll-nav-inner] {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  transition: transform 260ms cubic-bezier(0.4, 0, 0.2, 1);
}

@media (min-width: 961px) {
  [data-scroll-nav][data-scroll-nav-mode="fixed"].compact [data-scroll-nav-inner] {
    transform: translateY(-2px) scale(0.97);
    transform-origin: center top;
  }
}

[data-scroll-nav][data-scroll-nav-mode="fixed"] [data-scroll-nav-inner].is-transitioning {
  will-change: transform;
}

@media (max-width: 960px) {
  [data-scroll-nav][data-scroll-nav-mode="fixed"].is-hidden {
    transform: translateY(-100%);
  }
}

@media (prefers-reduced-motion: reduce) {
  [data-scroll-progress] .bibcycle-scroll-progress,
  [data-scroll-nav][data-scroll-nav-mode="fixed"] [data-scroll-nav-inner],
  [data-scroll-nav][data-scroll-nav-mode="fixed"] {
    transition: none;
  }
}
