/* Shared interaction rhythm. Story animation remains owned by the Orbital renderer. */
:root {
  --motion-quick: 140ms;
  --motion-control: 220ms;
  --motion-panel: 320ms;
  --motion-content: 320ms;
  --motion-entrance: 460ms;
  --motion-ease: cubic-bezier(.22, 1, .36, 1);
  --motion-ui: cubic-bezier(.2, .7, .2, 1);
}

/* Native same-origin page handoffs. Links, history and hash destinations stay
   browser-owned; unsupported browsers simply perform their normal navigation.
   No-script navigation stays immediate, without an incoming snapshot overlay. */
@media (prefers-reduced-motion: no-preference) and (scripting: enabled) {
  @view-transition { navigation: auto; }
  .masthead { view-transition-name: site-header; }
  ::view-transition-group(root) { animation-duration: 280ms; }
  ::view-transition-old(root) { animation: page-depart 140ms cubic-bezier(.4, 0, 1, 1) both; }
  ::view-transition-new(root) { animation: page-arrive 280ms var(--motion-ease) both; }
  ::view-transition-group(site-header) { animation-duration: 280ms; }
  ::view-transition-old(site-header) { animation: none; opacity: 0; }
  ::view-transition-new(site-header) { animation: none; }
}
@keyframes page-depart {
  to { opacity: 0; }
}
@keyframes page-arrive {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

.button {
  transition: box-shadow var(--motion-control) var(--motion-ui),
    filter var(--motion-control) var(--motion-ui),
    transform var(--motion-control) var(--motion-ease),
    border-color var(--motion-control) var(--motion-ui);
}
.button-primary:is(:hover, :focus-visible),
.button-dark:not([data-context-toggle]):is(:hover, :focus-visible) {
  /* Keep the approved black surface; cross-fade its light, not two gradients. */
  background: linear-gradient(180deg, #343436, #202023);
  filter: brightness(1.1);
  box-shadow: inset 0 1px 0 #ffffff40, 0 4px 10px #15151520;
}
.button:not([data-context-toggle]):hover {transform:none;}
.button:not([data-context-toggle]):active {
  transition-duration: 80ms;
  transform: translateY(1px);
  filter: brightness(.98);
}
.button > .icon { overflow: hidden; }
/* The arrow stays visible and moves once with its control; no fly-out/reset. */
.button .icon,
.text-link .icon,
.quiet-link .icon,
.detail-destinations > a > .icon,
.editorial-solution-list > a > .icon,
.solution-link > .icon:last-child,
.menu-solution-grid > a > .icon:last-child,
.agent-question button .icon,
.guide-link .text-link .icon {
  transition: transform var(--motion-control) var(--motion-ease),
    color var(--motion-quick) var(--motion-ui);
}
.button:not([data-context-toggle]):focus-visible .icon,
.text-link:focus-visible .icon,
.quiet-link:focus-visible .icon,
.detail-destinations > a:focus-visible > .icon,
.editorial-solution-list > a:focus-visible > .icon,
.solution-link:focus-visible > .icon:last-child,
.menu-solution-grid > a:focus-visible > .icon:last-child,
.agent-question button:focus-visible .icon {
  transform: translateX(3px);
}

.text-link, .quiet-link, .nav-link, .nav-dropdown > summary,
.back-link, .platform-pages a h3, .investigation-questions > a,
.orbital-scenarios a, .orbital-motion,
.footer-links a, .footer-bottom a, .breadcrumb a,
.menu-link-grid > a, .platform-menu-overview,
.platform-menu-foundations a, .menu-solution-grid > a,
.detail-destinations h3, .editorial-solution-list h3,
.solution-link, .story-card, .story-card h3, .guide-link,
.guide-link h2, .feed-sidebar button, .resource-filters button,
.report-tabs button, .agent-question button, .faq-list summary,
.access-form input, .access-form textarea {
  transition: color var(--motion-quick) var(--motion-ui),
    background-color var(--motion-control) var(--motion-ui),
    border-color var(--motion-control) var(--motion-ui),
    box-shadow var(--motion-control) var(--motion-ui);
}
.nav-dropdown > summary .icon,
.faq-list summary .icon {
  transition: transform var(--motion-panel) var(--motion-ease),
    color var(--motion-quick) var(--motion-ui);
}
.text-link:focus-visible, .quiet-link:focus-visible,
.nav-dropdown > summary:focus-visible,
.faq-list summary:focus-visible,
.faq-list details[open] > summary {
  color: var(--purple);
}
.report-tabs button:focus-visible,
.feed-sidebar button:focus-visible,
.resource-filters button:focus-visible {
  background-color: #f3eff8;
}
.access-form :is(input, textarea):focus-visible {
  border-color: var(--purple);
  box-shadow: 0 0 0 3px #763ac010;
}

/* A quiet directional cue, not another panel or decorative glow. */
.text-link { position: relative; }
.text-link::after {
  content: '';
  position: absolute;
  inset: auto 0 -1px;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 360ms var(--motion-ease);
}
.text-link:focus-visible::after { transform: scaleX(1); transform-origin: left; }

/* The selected surface travels, the labels do not. No layout-affecting padding
   or dimensions are added to the approved controls. */
.motion-selection { position: relative; isolation: isolate; }
.motion-selection > button { position: relative; z-index: 1; }
.motion-selection > .selection-marker {
  position: absolute;
  z-index: 0;
  margin: 0;
  padding: 0;
  pointer-events: none;
  transform-origin: top left;
  border: 1px solid #ded7e7;
  border-radius: 8px;
  background: white;
  box-shadow: 0 1px 3px #3022390a;
}
.motion-selection > .selection-marker:not([hidden]) { display: block; }
.report-format-tabs.motion-selection > button[aria-selected="true"] {
  background: transparent; border-color: transparent; box-shadow: none;
}
.feed-reading-choices.motion-selection > button[aria-selected="true"],
.pe-tabs.motion-selection > button[aria-selected="true"] {background:transparent;border-color:transparent;box-shadow:none;}
.feed-reading-choices.motion-selection > .selection-marker {background:#fff;border-color:#ddd;border-radius:10px;box-shadow:none;}
.pe-tabs.motion-selection > .selection-marker {background:#fff;border-color:#d9d4df;border-radius:7px;box-shadow:0 2px 3px #20192807;}
.product-preview .report-tabs.motion-selection > button[aria-selected="true"],
.report-tabs.motion-selection > button[aria-selected="true"] {
  border-color: transparent; background: transparent;
}
.report-tabs.motion-selection > .selection-marker {
  background: #7437b5; border: 0; border-radius: 1px; box-shadow: none;
}
.product-preview .feed-sidebar.motion-selection > button[aria-pressed="true"],
.feed-sidebar.motion-selection > button[aria-pressed="true"],
.resource-filters.motion-selection > button[aria-pressed="true"] {
  background: transparent; border-color: transparent; box-shadow: none;
}
.feed-sidebar.motion-selection > .selection-marker { background: #ebe3f6; border-color: #dfd0ef; }
.resource-filters.motion-selection > button[aria-pressed="true"] { color: var(--purple); }
.resource-filters.motion-selection > .selection-marker { background: #f3eff8; border-color: #ded1ee; border-radius: 30px; }

.nav-motion-surface { display: none; }
@media (min-width: 901px) {
  .nav-motion-ready .nav-motion-surface {
    display: block;
    position: absolute;
    z-index: 1;
    pointer-events: none;
    background: white;
    border: 1px solid var(--line);
    border-top: 0;
    border-radius: 0 0 8px 8px;
    box-shadow: 0 24px 40px #18152512;
  }
  .nav-motion-ready .nav-dropdown::details-content { transition: none; }
  .nav-motion-ready .mega-menu {
    z-index: 2;
    background: transparent;
    border-color: transparent;
    box-shadow: none;
    translate: none;
    transition: none;
  }
}
.menu-toggle {
  transition: background-color var(--motion-control) var(--motion-ui),
    color var(--motion-quick) var(--motion-ui);
}
.menu-toggle[aria-expanded="true"] { background-color: #f3eff8; color: var(--purple); }
.menu-line {
  transform-box: fill-box;
  transform-origin: center;
  transition: transform var(--motion-panel) var(--motion-ease);
}
.menu-toggle[aria-expanded="true"] .menu-line-top { transform: translateY(4px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-line-bottom { transform: translateY(-4px) rotate(-45deg); }
.detail-destinations > a:focus-visible h3,
.editorial-solution-list > a:focus-visible h3,
.story-card:focus-visible h3, .guide-link:focus-visible h2 { color: var(--purple); }

/* Native disclosures retain click, keyboard and no-JavaScript semantics. */
.nav-dropdown::details-content {
  transition: content-visibility var(--motion-control) allow-discrete;
}
.nav-dropdown .mega-menu {
  opacity: 0;
  translate: 0 -6px;
  transition: opacity 180ms var(--motion-ui),
    translate var(--motion-control) var(--motion-ease);
}
.nav-dropdown[open] .mega-menu { opacity: 1; translate: 0 0; }
.nav-dropdown:not([open]) .mega-menu { pointer-events: none; }
@starting-style {
  .nav-dropdown[open] .mega-menu { opacity: 0; translate: 0 -6px; }
}
.faq-list details::details-content,
.impact-evidence::details-content,
.solution-case-evidence::details-content {
  opacity: 0;
  transition: opacity var(--motion-control) var(--motion-ui),
    content-visibility var(--motion-panel) allow-discrete;
}
.faq-list details[open]::details-content,
.impact-evidence[open]::details-content,
.solution-case-evidence[open]::details-content { opacity: 1; }
@supports (interpolate-size: allow-keywords) {
  .faq-list details, .impact-evidence, .solution-case-evidence { interpolate-size: allow-keywords; }
  .faq-list details::details-content,
  .impact-evidence::details-content,
  .solution-case-evidence::details-content {
    block-size: 0;
    overflow: clip;
    transition: block-size var(--motion-panel) var(--motion-ease),
      opacity var(--motion-control) var(--motion-ui),
      content-visibility var(--motion-panel) allow-discrete;
  }
  .faq-list details[open]::details-content,
  .impact-evidence[open]::details-content,
  .solution-case-evidence[open]::details-content { block-size: auto; }
}

@media (hover: hover) and (pointer: fine) {
  .text-link:hover::after,
  .story-card:hover .text-link::after,
  .guide-link:hover .text-link::after { transform: scaleX(1); transform-origin: left; }
  .button:not([data-context-toggle]):hover .icon,
  .quiet-link:hover .icon,
  .detail-destinations > a:hover > .icon,
  .editorial-solution-list > a:hover > .icon,
  .solution-link:hover > .icon:last-child,
  .menu-solution-grid > a:hover > .icon:last-child,
  .agent-question button:hover .icon,
  .story-card:hover .text-link .icon,
  .guide-link:hover .text-link .icon { transform: translateX(3px); }
  .faq-list summary:hover,
  .nav-dropdown > summary:hover { color: var(--purple); }
  .feed-sidebar button:not([aria-pressed="true"]):hover,
  .resource-filters button:not([aria-pressed="true"]):hover { background-color: #f3eff8; }
  .report-tabs button:not([aria-selected="true"]):hover { color: var(--purple); border-color: #d8c7ec; }
  .story-card:hover, .story-card:focus-visible { border-color: #b8a1cf; }
  .story-art img { transition: scale 500ms var(--motion-ease); }
  .story-card:is(:hover, :focus-visible) .story-art img { scale: 1.025; }
}
@media (max-width: 900px) {
  @supports (interpolate-size: allow-keywords) {
    .nav-dropdown { interpolate-size: allow-keywords; }
    .nav-dropdown::details-content {
      block-size: 0;
      overflow: clip;
      transition: block-size var(--motion-panel) var(--motion-ease),
        content-visibility var(--motion-panel) allow-discrete;
    }
    .nav-dropdown[open]::details-content { block-size: auto; }
  }
  .js .masthead nav {
    opacity: 0;
    translate: 0 -8px;
    transition: opacity 180ms var(--motion-ui),
      translate var(--motion-control) var(--motion-ease),
      display var(--motion-control) allow-discrete;
  }
  .js .masthead nav.is-open { opacity: 1; translate: 0 0; }
  .js .masthead nav:not(.is-open) { pointer-events: none; }
  @starting-style {
    .js .masthead nav.is-open { opacity: 0; translate: 0 -8px; }
  }
}
@media (hover: none) {
  .button:hover, .text-link:hover .icon,
  .detail-destinations > a:hover > .icon { transform: none; }
  .button:active { transform: translateY(1px); }
}
@media (prefers-reduced-motion: reduce) {
  @view-transition { navigation: none; }
  ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation: none !important; }
  .button > .icon > * { animation: none !important; }
  .text-link::after { transition: none; }
  .nav-dropdown::details-content, .faq-list details::details-content,
  .impact-evidence::details-content, .solution-case-evidence::details-content { transition: none !important; }
  .nav-dropdown .mega-menu, .js .masthead nav { translate: none; }
  .button .icon, .text-link .icon, .quiet-link .icon,
  .detail-destinations > a > .icon, .editorial-solution-list > a > .icon,
  .solution-link > .icon:last-child, .menu-solution-grid > a > .icon:last-child,
  .agent-question button .icon, .story-card .text-link .icon,
  .guide-link .text-link .icon, .button:active { transform: none !important; }
  .story-art img { scale: none !important; }
}
@media (forced-colors: active) {
  .selection-marker { display: none; }
  .motion-selection > button:is([aria-selected="true"], [aria-pressed="true"]) {
    outline: 2px solid Highlight; outline-offset: -3px;
  }
}
