/* Shared motion contract. Layout and content work without animation support. */
:root { --motion-fast: 140ms; --motion-normal: 220ms; --motion-page: 280ms; --motion-ease: cubic-bezier(.2,.75,.25,1); }
dialog[open]::backdrop { animation: t3-backdrop-in var(--motion-normal) ease-out both; }
@keyframes t3-backdrop-in { from { background-color: transparent; backdrop-filter: blur(0); } }
#refresh-button[aria-busy="true"] svg { animation: t3-refresh .9s linear infinite; }
@keyframes t3-refresh { to { transform: rotate(360deg); } }
.content[aria-busy="true"] { cursor: progress; }
button[aria-busy="true"] { cursor: progress; }
.button, .icon-button, .nav-link, .interactive, .mobile-menu-link { -webkit-tap-highlight-color: transparent; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition-duration: 0s !important; }
}
