/* Mari Sunny 3.0.11 public motion policy.
 * Keep the theme's visual states and interpolate existing control movement.
 * Reveals use opacity and short translations, with no scale or layout tween. */
:root{
  --mari-motion-fast:180ms;
  --mari-motion-standard:240ms;
  --mari-motion-slow:320ms;
  --mari-motion-ease:cubic-bezier(.22,1,.36,1);
}

/* The theme moves some controls on hover/press. Including transform and
 * translate is essential: excluding them made those states snap instantly. */
:where(
  .site-header a,.site-header button,
  .header-actions a,.header-actions button,
  .server-quickbar nav a,.server-quickbar nav button,
  .site-footer a,.site-footer button,
  .button,.squishy-button,.back-to-top,.copy-address,
  .desktop-hub-links a,.mobile-hub-links a,.craft-links a,.support-links>a,
  .not-found-actions a,.not-found-routes nav a,
  .mari-fundraiser-actions a,
  .mari-news-category-chip,.mari-news-primary,.mari-news-secondary,.mari-news-mode,.mari-news-like,
  .mari-v3-btn,
  .mari-back-control,.mari-news-back,.news-archive>.back-link,.legal-page .back-link,[data-mari-back]
){
  transition-property:background-color,border-color,color,box-shadow,opacity,transform,translate!important;
  transition-duration:var(--mari-motion-standard)!important;
  transition-timing-function:var(--mari-motion-ease)!important;
  transition-delay:0s!important;
}
.mari-news-category-chip:hover{transform:none!important}

/* Use the same easing throughout public sections. Never introduce hidden
 * states unless the theme's observer has explicitly enabled its reveal class. */
.mari-motion [data-reveal]{
  transform:translate3d(0,12px,0);
  transition-property:opacity,transform;
  transition-duration:360ms;
  transition-timing-function:var(--mari-motion-ease);
  transition-delay:var(--reveal-delay,0ms);
}
.mari-motion [data-reveal].is-visible{
  transform:translate3d(0,0,0);
}

@media(max-width:680px){
  .mari-motion [data-reveal]{
    transform:translate3d(0,8px,0);
    transition-duration:300ms;
  }
  .mari-motion [data-reveal].is-visible{transform:translate3d(0,0,0)}
}

/* These compact utility sections must contribute their real height before
 * scrolling. The theme's 800px placeholder caused anchors and the chart below
 * the status summary to shift when the skipped section finally rendered. */
.status-content,.map-wrap{
  content-visibility:visible!important;
  contain-intrinsic-size:none!important;
}

/* Live status surfaces change state smoothly without pulsing or bouncing. */
.server-quickbar,.combined-status-card{
  transition-property:border-color,background-color,box-shadow!important;
  transition-duration:var(--mari-motion-standard)!important;
  transition-timing-function:var(--mari-motion-ease)!important;
  transition-delay:0s!important;
}
.mari-qol-mobile-server-toggle-chevron{
  transition:transform var(--mari-motion-standard) var(--mari-motion-ease)!important;
}

/* Preview/device resizing should feel controlled rather than elastic. */
.mari-news-preview-frame{
  transition:width var(--mari-motion-standard) var(--mari-motion-ease)!important;
}

/* The donor ticker is the one intentional continuous public animation.
 * It stays linear so there is no acceleration/deceleration every loop. */
.mari-fundraiser-latest-track.is-scrolling{
  animation-timing-function:linear!important;
  animation-delay:0s!important;
}

/* Respect the OS motion preference across all plugin-owned public surfaces. */
@media(prefers-reduced-motion:reduce){
  :where(
    #mari-main,.site-header,.site-footer,.server-quickbar,.combined-status-card,.mari-fundraiser-banner,
    .mari-inbox-dialog,
    .news-article,.news-archive,.mari-news-account-wrap,.mari-news-community-comments,
    .legal-page,.mari-mc-activity-v2758,.mari-v3-activity,.mari-mc-about
  ),
  :where(
    #mari-main,.site-header,.site-footer,.server-quickbar,.combined-status-card,.mari-fundraiser-banner,
    .mari-inbox-dialog,
    .news-article,.news-archive,.mari-news-account-wrap,.mari-news-community-comments,
    .legal-page,.mari-mc-activity-v2758,.mari-v3-activity,.mari-mc-about
  ) *{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    transition-delay:0s!important;
    scroll-behavior:auto!important;
  }
  html{scroll-behavior:auto!important}
  .mari-motion [data-reveal]{opacity:1!important;transform:none!important;transition:none!important}
  .mari-fundraiser-latest-track{animation:none!important;transform:none!important;will-change:auto!important}
}
