/* =========================================================================
   Motion layer — subtle, refined effects. Everything here is disabled for
   users who prefer reduced motion (see bottom of file).
   ========================================================================= */

/* ---------- Scroll progress bar ---------- */
.scroll-progress {
  position: fixed; top: 0; left: 0; right: 0; z-index: 60; height: 2px;
  background: var(--brass-300); transform: scaleX(0); transform-origin: left; pointer-events: none;
}

/* ---------- Hero: slow Ken Burns + staggered entrance ---------- */
.hero__img { scale: 1.08; animation: hero-kenburns 14s cubic-bezier(.25, .6, .3, 1) .1s forwards; will-change: scale, translate; }
@keyframes hero-kenburns { to { scale: 1; } }

.js .hero__inner > *, .js .home-hero__inner > *, .js .dark .breadcrumb ~ * {
  animation: hero-rise 1s var(--ease) both;
}
.js .hero__inner > :nth-child(1), .js .home-hero__inner > :nth-child(1) { animation-delay: .15s; }
.js .hero__inner > :nth-child(2), .js .home-hero__inner > :nth-child(2) { animation-delay: .3s; }
.js .hero__inner > :nth-child(3), .js .home-hero__inner > :nth-child(3) { animation-delay: .45s; }
.js .hero__inner > :nth-child(4), .js .home-hero__inner > :nth-child(4) { animation-delay: .6s; }
.js .hero__inner > :nth-child(5) { animation-delay: .75s; }
@keyframes hero-rise { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
.home-hero__caption { animation: fade-in 1.4s ease 1s both; }
.js .home-stats__card { animation: hero-rise 1.1s var(--ease) .7s both; }
@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }

/* Hero eyebrow line draws in */
.js .hero .eyebrow__line, .js .home-hero .eyebrow__line { animation: line-draw 1.1s var(--ease) .35s both; transform-origin: left; }
@keyframes line-draw { from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* ---------- Reveal refinements ---------- */
/* Section eyebrow lines grow when their block is revealed */
.js .reveal .eyebrow__line { transform: scaleX(0); transform-origin: left; transition: transform 1s var(--ease) .25s; }
.js .reveal.is-visible .eyebrow__line { transform: scaleX(1); }

/* Images inside revealed blocks: wipe up + settle */
.js .reveal .media, .js .media.reveal { clip-path: inset(12% 0 0 0); transition: clip-path 1.2s var(--ease), opacity .8s var(--ease), transform .8s var(--ease); }
.js .reveal.is-visible .media, .js .media.reveal.is-visible { clip-path: inset(0 0 0 0); }
.js .reveal .media > img, .js .media.reveal > img { scale: 1.1; transition: scale 1.6s var(--ease), transform .9s var(--ease); }
.js .reveal.is-visible .media > img, .js .media.reveal.is-visible > img { scale: 1; }

/* Child items revealed one after another (delay set by site-motion.js) */
.js .reveal-item { opacity: 0; transform: translateY(16px); transition: opacity .7s var(--ease), transform .7s var(--ease); transition-delay: var(--d, 0s); }
.js .reveal-item.is-visible { opacity: 1; transform: none; }

/* ---------- Navigation underline slides in ---------- */
.site-nav a { position: relative; border-bottom: 0; }
.site-nav a::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--brass-300);
  transform: scaleX(0); transform-origin: right; transition: transform .45s var(--ease);
}
.site-nav a:hover::after, .site-nav a[aria-current="page"]::after { transform: scaleX(1); transform-origin: left; }

/* ---------- Small hover refinements ---------- */
.chip, .chip--plain, .chip--white, .chip--paper { transition: background-color .25s, border-color .25s, color .25s, transform .25s var(--ease); }
.chip:hover { transform: translateY(-1px); }
.value-item { transition: border-color .4s; }
.value-item:hover { border-top-color: var(--green-600); }
.value-item__n { transition: transform .5s var(--ease); display: inline-block; }
.value-item:hover .value-item__n { transform: translateX(6px); }
.partner-grid__name { transition: color .3s; }
.partner-grid li:hover .partner-grid__name { color: var(--green-600); }
.circle-list__n { transition: background-color .35s, color .35s; }
.circle-list li:hover .circle-list__n { background: var(--green-600); color: #FFFFFF; }
.numlist > li { transition: padding-left .35s var(--ease); }
.numlist > li:hover { padding-left: 6px; }
.dept, .org-cell { transition: transform .3s var(--ease), box-shadow .3s; }
.dept:hover, .org-cell:hover { transform: translateY(-2px); box-shadow: 0 12px 24px -18px rgba(12, 51, 36, .45); }
.channel__icon svg { transition: transform .35s var(--ease); }
.channel:hover .channel__icon svg { transform: scale(1.12) rotate(-6deg); }

/* ---------- Reduced motion: keep gentle fades, remove movement/zoom ---------- */
@media (prefers-reduced-motion: reduce) {
  .hero__img { animation: none; scale: 1; }
  .js .hero__inner > *, .js .home-hero__inner > *, .js .dark .breadcrumb ~ *, .js .home-stats__card { animation-name: fade-in; }
  .js .hero .eyebrow__line, .js .home-hero .eyebrow__line { animation: none; }
  .js .reveal .eyebrow__line { transform: none; transition: none; }
  .js .reveal .media, .js .media.reveal { clip-path: none; }
  .js .reveal .media > img, .js .media.reveal > img { scale: 1; transition: none; }
  .js .reveal-item { transform: none; transition: opacity .7s ease; transition-delay: var(--d, 0s); }
  .parallax-bg { scale: 1; }
  .chip:hover, .dept:hover, .org-cell:hover, .value-item:hover .value-item__n, .channel:hover .channel__icon svg { transform: none; }
  .numlist > li:hover { padding-left: 0; }
}

/* Parallax support: clip hero overflow; pre-scale background layers so edges never show */
.hero { overflow: hidden; }
.parallax-bg { scale: 1.12; animation: none; }
.numlist > li.reveal-item { transition: opacity .7s var(--ease), transform .7s var(--ease), padding-left .35s var(--ease); transition-delay: var(--d, 0s), var(--d, 0s), 0s; }
