/* Scroll effects (assets/js/effects.js): progress bar, back-to-top, active nav,
   heading word reveal. All motion is skipped for prefers-reduced-motion. */

/* smoother header hide / show */
header { transition: transform 420ms cubic-bezier(0.22, 1, 0.36, 1); }

/* scroll progress line along the bottom of the header */
:root { --header-h: 65px; }
@media (max-width: 480px) { :root { --header-h: 76px; } }

.scroll-progress {
  position: fixed;
  left: 0;
  right: 0;
  top: 0;
  z-index: 150;
  height: 3px;
  pointer-events: none;
  overflow: hidden;
  transform: translateY(calc(var(--header-h) - 2px));
  transition: transform 420ms cubic-bezier(0.22, 1, 0.36, 1);
}
body.nav-hidden .scroll-progress { transform: translateY(0); }
.scroll-progress span {
  display: block;
  width: 100%;
  height: 100%;
  background: var(--red);
  transform: scaleX(0);
  transform-origin: left center;
}

/* active nav link */
nav.desktop-nav a.is-active,
nav.desktop-nav a[aria-current="page"] {
  color: var(--red);
  border-color: var(--red);
}

/* back-to-top */
.back-to-top {
  position: fixed;
  left: 24px;
  bottom: 24px;
  z-index: 90;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--red);
  color: var(--white);
  border: 0;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: opacity 240ms ease, transform 240ms ease, visibility 240ms;
}
.back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.back-to-top:hover { background: #A80033; }
.back-to-top svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* heading word reveal */
.split-word { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: 0.08em; margin-bottom: -0.08em; }
.split-word-inner { display: inline-block; will-change: transform; }

@media (prefers-reduced-motion: reduce) {
  header { transition: none; }
  .back-to-top { transition: none; }
}
