/* Shared motion language: quick controls, quiet editorial entrances. */
:root {
  --nm-ease-out: cubic-bezier(.22, 1, .36, 1);
  --nm-ease-ui: cubic-bezier(.2, .7, .2, 1);
  --nm-motion-fast: 160ms;
  --nm-motion-ui: 220ms;
}

html { scroll-padding-top: 80px; }
.nm-main [id] { scroll-margin-top: 80px; }
a { text-underline-offset: .2em; }

/* Limit transitions to actual properties; keep focus feedback immediate. */
.nm-btn, .nm-more, .nm-chip, .nm-tabs a, .nm-az a, .nm-pagination a,
.nm-menu-toggle, .nm-search-toggle, .nm-mega__trigger, .nm-select__button {
  transition: color var(--nm-motion-fast) ease,
    background-color var(--nm-motion-ui) ease,
    border-color var(--nm-motion-ui) ease,
    transform var(--nm-motion-fast) var(--nm-ease-ui);
}
.nm-nav__item > a, .nm-mega__list a, .nm-select__option,
.nm-foot a, .nm-top a, .nm-policy__nav a, .nm-company-toc a,
.nm-company-jumps a, .nm-card__title a, .nm-run__title a,
.nm-dir__name a, .nm-person-card__name a, summary {
  transition: color var(--nm-motion-fast) ease, background-color var(--nm-motion-ui) ease;
}
.nm-select__button svg, .nm-mega__trigger svg, .nm-company-faq summary::after {
  transition: transform var(--nm-motion-ui) var(--nm-ease-out);
}
.nm-select__button[aria-expanded="true"] svg { transform: rotate(180deg); }
.nm-menu-toggle[aria-expanded="true"] { background: var(--wash); color: var(--signal-700); }
.nm-btn:active, .nm-more:active, .nm-menu-toggle:active, .nm-search-toggle:active {
  transform: scale(.98);
}
input:not([type="checkbox"]):not([type="radio"]), select, textarea {
  transition: border-color var(--nm-motion-fast) ease, background-color var(--nm-motion-fast) ease;
}
.nm-field:focus-within label { color: var(--navy); }

.nm-card__media, .nm-lead__media, .nm-sec-item__media,
.nm-run__photo, .nm-person-card__photo { overflow: hidden; }
.nm-card__media img, .nm-lead__media img, .nm-sec-item__media img,
.nm-run__photo img, .nm-person-card__photo img {
  transition: transform 480ms var(--nm-ease-out);
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .nm-btn:hover, .nm-more:hover { transform: translateY(-1px); }
  .nm-card:hover .nm-card__media img,
  .nm-lead__media:hover img, .nm-sec-item:hover .nm-sec-item__media img,
  .nm-run__item:hover .nm-run__photo img,
  .nm-person-card:hover .nm-person-card__photo img { transform: scale(1.025); }
}

/* Native scrolling preserves sticky sidebars, touch momentum and browser find. */
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}
.nm-reading-progress {
  position: fixed; z-index: 100; inset: 0 0 auto; height: 2px;
  background: var(--signal); pointer-events: none;
  transform: scaleX(0); transform-origin: left center;
}
body.admin-bar .nm-reading-progress { top: 32px; }
@media (max-width: 782px) { body.admin-bar .nm-reading-progress { top: 46px; } }

/* No hidden-by-default content. GSAP failure leaves the complete page readable. */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 0s !important; animation-duration: 0s !important; }
  .nm-reading-progress { display: none; }
  .nm-btn:active, .nm-more:active, .nm-menu-toggle:active, .nm-search-toggle:active { transform: none; }
}
@media print {
  .nm-reading-progress { display: none; }
  [data-nm-motion] { transform: none !important; opacity: 1 !important; visibility: visible !important; }
}
