/* Folha interaction motion: lateral controls, contained photo zoom, no layout shifts. */
:root {
  --folha-motion-fast: 180ms;
  --folha-motion-slow: 360ms;
  --folha-motion-ease: cubic-bezier(.22,.7,.2,1);
}
@media (prefers-reduced-motion: no-preference) {
  :is(.main-nav, .mobile-menu, .filter-buttons, .lead-actions, .tabbar) :is(a, button) {
    transition: color var(--folha-motion-fast) ease, background-color var(--folha-motion-fast) ease,
      border-color var(--folha-motion-fast) ease, transform var(--folha-motion-fast) var(--folha-motion-ease);
  }
  :is(.tabbar, .lead-actions) :is(svg, .tab-mark) {
    transition: transform var(--folha-motion-fast) var(--folha-motion-ease);
  }
  :is(.main-nav, .mobile-menu, .filter-buttons) :is(a, button):focus-visible {
    transform: translateX(3px);
  }
  :is(.tabbar, .lead-actions) :is(a, button):is(:focus-visible, :active, [aria-pressed="true"], [aria-expanded="true"]) :is(svg, .tab-mark) {
    transform: translateX(3px) scale(1.06);
  }
  .tabbar :is(a, button).on :is(svg, .tab-mark) {
    animation: folha-icon-select 260ms var(--folha-motion-ease) both;
  }
  .filter-buttons button.active {
    animation: folha-control-select 240ms var(--folha-motion-ease) both;
  }
  :is(.news-card, .story-card, .text-card) {
    transition: transform var(--folha-motion-fast) var(--folha-motion-ease);
    transform-origin: center;
  }
  :is(.news-card, .story-card, .text-card):focus-within {
    transform: scale(1.008);
  }
  :is(.editorial-news-image, .native-story-image, .native-article-image, .eclipse-article-image, .eclipse-inline-image) {
    overflow: hidden;
    isolation: isolate;
  }
  :is(.editorial-news-image, .native-story-image, .native-article-image, .native-lead-image, .eclipse-article-image, .eclipse-inline-image) img {
    transition: transform var(--folha-motion-slow) var(--folha-motion-ease);
    transform-origin: center;
  }
  :is(.news-card, .hero-art, .native-lead-image):is(:focus-within, :active) img {
    transform: scale(1.04);
  }
  :is(.eclipse-article-image, .eclipse-inline-image, .native-article-image):active img {
    transform: scale(1.035);
  }
  :is(.editorial-news-image, .native-article-image, .eclipse-article-image, .eclipse-inline-image) figcaption {
    position: relative;
    z-index: 1;
  }
  @media (hover: hover) and (pointer: fine) {
    :is(.main-nav, .mobile-menu, .filter-buttons) :is(a, button):hover { transform: translateX(3px); }
    :is(.tabbar, .lead-actions) :is(a, button):hover :is(svg, .tab-mark) { transform: translateX(3px) scale(1.06); }
    :is(.news-card, .story-card, .text-card):hover { transform: scale(1.008); }
    :is(.news-card, .hero-art, .native-lead-image):hover img,
    :is(.eclipse-article-image, .eclipse-inline-image, .native-article-image):hover img { transform: scale(1.04); }
  }
}
@keyframes folha-icon-select {
  from { transform: translateX(-5px) scale(.96); }
  to { transform: translateX(0) scale(1.06); }
}
@keyframes folha-control-select {
  from { transform: translateX(-4px); }
  to { transform: translateX(0); }
}
@media (prefers-reduced-motion: reduce) {
  :is(.main-nav, .mobile-menu, .filter-buttons, .lead-actions, .tabbar) :is(a, button, svg, .tab-mark),
  :is(.news-card, .story-card, .text-card),
  :is(.editorial-news-image, .native-story-image, .native-article-image, .native-lead-image, .eclipse-article-image, .eclipse-inline-image) img,
  .official-news-card:hover .editorial-news-image img, .hero-art:hover .editorial-news-image img {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
}
