/* Motion polish shared by all sites. Purely additive, GPU-only (opacity/transform), switched off by prefers-reduced-motion.
   :where() keeps specificity at 0 so a site's own rules always win. */
:root { --pl-brand: var(--brand, var(--primary, #6366f1)); }

@media (prefers-reduced-motion: no-preference) {
  /* scroll reveal: .rv is added by polish.js only to elements that start below the fold, so nothing above the fold ever hides */
  .rv { opacity: 0; transform: translate3d(0, 18px, 0) scale(.985); }
  .rv.rv-in { opacity: 1; transform: none; transition: opacity .55s cubic-bezier(.2, .7, .2, 1) var(--rv-d, 0ms), transform .6s cubic-bezier(.2, .7, .2, 1) var(--rv-d, 0ms); }

  /* hover lift + press feedback */
  :where(.card, .cardx, .glass, .doc-card, .tile, .stat, .tender-card, .act-card, .info-card):not(.no-lift) { transition: transform .22s ease, box-shadow .22s ease; }
  @media (hover: hover) {
    :where(.card, .cardx, .doc-card, .tile, .tender-card, .act-card, .info-card):not(.no-lift):hover { transform: translateY(-3px); box-shadow: 0 14px 30px -14px rgb(15 23 42 / .28); }
  }
  :where(.btn, button.btn-primary, .btn-brand, .btn-primary, [role=button], .chip, .pill-btn) { transition: transform .12s ease, box-shadow .2s ease, filter .2s ease; }
  :where(.btn, .btn-brand, .btn-primary, [role=button], .chip):active { transform: scale(.96); }

  /* images fade in once decoded instead of popping */
  img.pl-img { opacity: 0; transition: opacity .45s ease; }
  img.pl-img.pl-ok { opacity: 1; }

  /* shimmer for any placeholder */
  .skeleton, .pl-skeleton { position: relative; overflow: hidden; background: #e8ecf4; border-radius: 10px; }
  .skeleton::after, .pl-skeleton::after { content: ''; position: absolute; inset: 0; transform: translateX(-100%); background: linear-gradient(90deg, transparent, rgb(255 255 255 / .7), transparent); animation: pl-shimmer 1.3s infinite; }
  @keyframes pl-shimmer { to { transform: translateX(100%); } }
}

/* scroll progress bar (thin gradient line at the very top) */
#pl-progress { position: fixed; z-index: 2147483000; top: 0; left: 0; right: 0; height: 3px; transform-origin: 0 50%; transform: scaleX(0); background: linear-gradient(90deg, var(--pl-brand), #ec4899, #f59e0b); pointer-events: none; opacity: 0; transition: opacity .25s; will-change: transform; }
#pl-progress.on { opacity: 1; }
@media print, (prefers-reduced-motion: reduce) { #pl-progress { display: none; } }
/* narrow phones: keep the brand name readable next to the header buttons */
@media(max-width:380px){.get-app-pill span{display:none}.get-app-pill{padding-left:10px;padding-right:10px}}
