/* Shared navigation geometry and quiet, progressive interaction. */
:root {
  --site-header-offset:var(--header-height,108px);
  --local-nav-offset:0px;
  --reading-offset:calc(var(--site-header-offset) + var(--local-nav-offset));
  --card-surface:var(--paper);
}
html { scroll-padding-top:var(--reading-offset); }
:root main [id] { scroll-margin-top:24px; }
.site-header { position:sticky; top:0; }
.site-header.is-scrolled { box-shadow:0 1px 0 var(--line); }
.has-reading-progress body::after { display:none; }
.reading-progress {
  position:absolute;
  bottom:0;
  left:0;
  width:100%;
  height:3px;
  pointer-events:none;
  background:var(--accent);
  transform:scaleX(var(--reading-progress,0));
  transform-origin:left center;
  z-index:31;
}
:root :is(.section-local-nav,.legislation-local-nav,.gift-local-nav,.world-nav,.investment-nav) {
  position:sticky;
  top:calc(var(--site-header-offset) + var(--local-stack-offset,0px));
  z-index:14;
  background:var(--paper);
  box-shadow:0 1px 0 var(--line);
}
:root :is(.world-nav,.investment-nav) {
  flex-wrap:nowrap;
  overflow-x:auto;
  overscroll-behavior-x:contain;
  gap:clamp(24px,3vw,44px);
  padding-block:0;
  scrollbar-width:thin;
}
:root :is(.world-nav,.investment-nav) a { flex:0 0 auto; padding-block:19px; white-space:nowrap; }
:is(.section-local-nav,.legislation-local-nav,.gift-local-nav,.world-nav,.investment-nav) a {
  min-height:48px;
  display:inline-flex;
  align-items:center;
  position:relative;
  border-bottom:2px solid transparent;
  transition:color .2s ease,border-color .2s ease;
}
:is(.section-local-nav,.legislation-local-nav,.gift-local-nav,.world-nav,.investment-nav) a:is(.is-active,[aria-current=location]) {
  color:var(--accent);
  border-bottom-color:currentColor;
}
:is(.section-local-nav,.legislation-local-nav,.gift-local-nav,.world-nav,.investment-nav) a:focus-visible {
  outline-offset:-4px;
}
.muted-band { --card-surface:var(--surface); }

/* Text is never withheld while an observer, image or script is loading. */
.motion-ready [data-reveal],.motion-ready [data-reveal].is-visible {
  opacity:1;
  transform:none;
  transition:none;
}
@keyframes experience-enter {
  from { translate:0 18px; }
  to { translate:0 0; }
}
@media(prefers-reduced-motion:no-preference) {
  .motion-ready [data-reveal].is-visible {
    animation:experience-enter .7s var(--ease) both;
    animation-delay:var(--reveal-delay,0ms);
  }
  :is(.institution-card,.program-card,.research-row-link,.legislation-entry,.proposal-connections-grid>a,.pillar-connection-grid>a,.world-evidence-cells>a,.atlas-proposal,.evidence-trail nav>a) {
    transition:background-color .25s ease,box-shadow .35s var(--ease),translate .35s var(--ease);
  }
  :is(.institution-card,.program-card,.research-row-link,.legislation-entry,.proposal-connections-grid>a,.pillar-connection-grid>a,.world-evidence-cells>a,.atlas-proposal,.evidence-trail nav>a):focus-within {
    box-shadow:0 2px 0 var(--accent);
  }
  @media(hover:hover) and (pointer:fine) {
    :is(.institution-card,.program-card,.research-row-link,.legislation-entry,.proposal-connections-grid>a,.pillar-connection-grid>a,.world-evidence-cells>a,.atlas-proposal,.evidence-trail nav>a):hover {
      translate:0 -4px;
      box-shadow:0 2px 0 var(--accent);
    }
  }
}

/* Only JS-measured columns which fit the viewport receive sticky behavior. */
@media(min-width:1000px) and (min-height:700px) {
  .is-sticky-support {
    position:sticky;
    top:calc(var(--reading-offset) + 28px);
    align-self:start;
  }
  .reader-nav {
    top:calc(var(--reading-offset) + 24px);
    max-height:calc(100dvh - var(--reading-offset) - 48px);
    scroll-behavior:auto;
  }
  @media(prefers-reduced-motion:no-preference) {
    .is-card-stack { isolation:isolate; }
    .is-card-stack > * {
      position:sticky;
      top:calc(var(--reading-offset) + 28px + var(--card-order,0) * 14px);
      background:var(--card-surface);
      z-index:calc(1 + var(--card-order,0));
      box-shadow:0 -1px 0 var(--line);
    }
    .is-card-stack > :focus-within { z-index:10; }
  }
}
@media(min-width:761px) and (max-width:999px), (min-width:761px) and (max-height:699px) {
  .reader-nav { top:calc(var(--reading-offset) + 20px); max-height:calc(100dvh - var(--reading-offset) - 40px); }
}
@media(max-width:760px) {
  :root :is(.world-nav,.investment-nav) { gap:24px; }
  :root :is(.world-nav,.investment-nav) a { font-size:.76rem; padding-block:15px; }
  .reader-nav { position:relative; top:0; }
}
@media(prefers-reduced-motion:reduce) {
  @view-transition { navigation:none; }
  html { scroll-behavior:auto; }
  .motion-ready [data-reveal],.motion-ready [data-reveal].is-visible { animation:none; translate:none; }
  .is-depth-active { transform:none; }
  :is(.institution-card,.program-card,.research-row-link,.legislation-entry,.proposal-connections-grid>a,.pillar-connection-grid>a,.world-evidence-cells>a,.atlas-proposal,.evidence-trail nav>a) { transition:none; translate:none; }
  .is-card-stack > * { position:relative; top:auto; }
}
@media print {
  .reading-progress,.world-nav,.investment-nav { display:none!important; }
  .is-sticky-support,.is-card-stack > * { position:static!important; }
  .motion-ready [data-reveal].is-visible { animation:none; translate:none; }
}
